如何使用简洁的声明将十六进制字符串('003de70fc98a')格式化为MAC字符串('00:3d:e7:0f:c9:8a')?
答案 0 :(得分:4)
您可以使用正则表达式:
>>> re.sub(r'(?<=..)(..)', r':\1', '003de70fc98a')
'00:3d:e7:0f:c9:8a'
答案 1 :(得分:3)
In [104]: hexstr = '003de70fc98a'
In [105]: ':'.join([hexstr[i:i+2] for i in range(0, len(hexstr), 2)])
Out[105]: '00:3d:e7:0f:c9:8a'
,或者
In [108]: ':'.join(map(''.join, zip(*[iter(hexstr)]*2)))
Out[108]: '00:3d:e7:0f:c9:8a'
答案 2 :(得分:1)
试试这个:
s = '003de70fc98a'
':'.join(s[i]+s[i+1] for i in range(0, len(s), 2))
=> '00:3d:e7:0f:c9:8a'