2024-04-30 04:27:12 发布
网友
我想将MAC地址00163e2fbab7(存储为字符串)转换为其字符串表示形式00:16:3e:2f:ba:b7。 最简单的方法是什么?
如果您有一个要用冒号连接的字符串s,那么这就可以了。
s
':'.join([s[i]+s[i+1] for i in range(0,12,2)])
使用完全迂回的方法利用一次对两个十六进制字符进行分组的现有函数:
>>> ':'.join(s.encode('hex') for s in '00163e2fbab7'.decode('hex')) '00:16:3e:2f:ba:b7'
为Python 3更新:
>>> ':'.join(format(s, '02x') for s in bytes.fromhex('00163e2fbab7')) '00:16:3e:2f:ba:b7'
使用grouper idiomzip(*[iter(s)]*n):
zip(*[iter(s)]*n)
In [32]: addr = '00163e2fbab7' In [33]: ':'.join(''.join(pair) for pair in zip(*[iter(addr)]*2)) Out[33]: '00:16:3e:2f:ba:b7'
也有可能(事实上,更快一点):
In [36]: ':'.join(addr[i:i+2] for i in range(0,len(addr),2)) Out[36]: '00:16:3e:2f:ba:b7'
如果您有一个要用冒号连接的字符串
s
,那么这就可以了。使用完全迂回的方法利用一次对两个十六进制字符进行分组的现有函数:
为Python 3更新:
使用grouper idiom
zip(*[iter(s)]*n)
:也有可能(事实上,更快一点):
相关问题 更多 >
编程相关推荐