数据类型转换
16进制和10进制之间转换
In [18]: int('a',16) 把16进制的a转换为10进制的10,16说明a是16进制数 Out[18]: 10 In [13]: int('0xa',16) 把16进制的0xa转换为十进制的10,16说明0xa是16进制数 Out[13]: 10 In [14]: int('0xb',16) 把16进制的0xb转换为十进制的11,16说明0xb是16进制数 Out[14]: 11 In [16]: hex(10) 把10进制的10转化为十六进制的0xa Out[16]: '0xa' [root@133 filevalue]# vim mac.py #!/usr/bin/python macaddr = "A4:BA:DB:20:93:E9" prefix_mac = macaddr[:-3] #获取A4:BA:DB:20:93 last_two = macaddr[-2:] #获取E9 plus_one = int(last_two, 16) + 1 #将E9转化为10进制233,然后+1,变为234 new_last_two = hex(plus_one)[-2:] #新的mac最后两位将234转换为16进制ea new_mac = prefix_mac + ':' + new_last_two #新的mac地址是 A4:BA:DB:20:93 + ':' + ea print new_mac.upper() #打印新的mac地址A4:BA:DB:20:93:ea并且转换为大写A4:BA:DB:20:93:EA [root@133 filevalue]# python mac.py A4:BA:DB:20:93:EA [root@133 filevalue]# vim mac.py #!/usr/bin/python macaddr = "A5:BA:DB:20:93:03" prefix_mac = macaddr[:-3] print prefix_mac last_two = macaddr[-2:] print last_two plus_one = int(last_two, 16) + 1 print plus_one if plus_one in range(10): new_last_two = hex(plus_one)[2:] print new_last_two new_last_two = '0' + new_last_two else: new_last_two = hex(plus_one)[2:] print new_last_two if len(new_last_two) == 1: new_last_two = '0' + new_last_two print new_last_two new_mac = prefix_mac + ':' + new_last_two print new_mac.upper() [root@133 filevalue]# python mac.py A5:BA:DB:20:93 03 最后两位是03,转换为10进制是4 4 把4转换为16进制是4 4 在4前面加上0 A5:BA:DB:20:93:04 [root@133 filevalue]# vim mac.py #!/usr/bin/python macaddr = "A5:BA:DB:20:93:0a" prefix_mac = macaddr[:-3] print prefix_mac last_two = macaddr[-2:] print last_two plus_one = int(last_two, 16) + 1 print plus_one if plus_one in range(10): new_last_two = hex(plus_one)[2:] print new_last_two new_last_two = '0' + new_last_two else: new_last_two = hex(plus_one)[2:] print new_last_two if len(new_last_two) == 1: new_last_two = '0' + new_last_two print new_last_two new_mac = prefix_mac + ':' + new_last_two print new_mac.upper() [root@133 filevalue]# python mac.py A5:BA:DB:20:93 0a 对应10进制的10,加1是11 11 11对应16进制的b b 注意:这里少了0, 0b 加一个0,变成0b,然后用upper变成0B A5:BA:DB:20:93:0B
列表和字符串的转换
字符串转列表
In [22]: s = 'abc' In [23]: list(s) #list(s)将字符串s转换为list列表 Out[23]: ['a', 'b', 'c'] In [24]: l = list(s) #定义list l In [25]: l #查看list l Out[25]: ['a', 'b', 'c'] In [26]: '.'.join(l) #使用join的方法将list的l格式化 Out[26]: 'a.b.c' In [27]: a = 'a' In [28]: help(a.join) Help on built-in function join: join(...) S.join(iterable) -> string Return a string which is the concatenation of the strings in the iterable. The separator between elements is S. #S是分隔符,这里用的是. (END) In [32]: ' '.join(l) #用空字符做分隔符 Out[32]: 'a b c'
字符串转元祖(与字符串转列表方法一样)
In [33]: s Out[33]: 'abc' In [34]: s = 'abc' In [35]: tuple(s) Out[35]: ('a', 'b', 'c') In [36]: t = tuple(s) In [37]: t Out[37]: ('a', 'b', 'c') In [38]: '.'.join(t) Out[38]: 'a.b.c' In [39]: ' '.join(t) Out[39]: 'a b c'
列表和元祖的互相转换
In [41]: l Out[41]: ['a', 'b', 'c'] In [42]: tuple(l) #tuple()函数将列表l转换为元祖tuple Out[42]: ('a', 'b', 'c') In [43]: t Out[43]: ('a', 'b', 'c') In [44]: list(t) #list()函数将元祖t转换为列表list Out[44]: ['a', 'b', 'c']
字典转换为列表
In [46]: dic Out[46]: {'a': 1, 'b': 2} In [47]: dic.items() #dic.items()函数将字典转换为组成的列表,列表元素是元祖,元祖是字典中的key和value的对应关系 Out[47]: [('a', 1), ('b', 2)]
将列表转换为字典(前提条件是:列表内的元祖是由两个元素组成的,key和value)
In [48]: l1 = dic.items() In [49]: l1 Out[49]: [('a', 1), ('b', 2)] In [50]: dict(l1) #使用dict(l1)函数将列表转换为字典 Out[50]: {'a': 1, 'b': 2}
转载于:https://blog.51cto.com/daixuan/1774533