1

如何使用简洁的语句将十六进制字符串 ('003de70fc98a') 格式化为 MAC 字符串 ('00:3d:e7:0f:c9:8a')?

4

3 回答 3

4

您可以使用正则表达式:

>>> re.sub(r'(?<=..)(..)', r':\1', '003de70fc98a')
'00:3d:e7:0f:c9:8a'
于 2013-03-17T02:06:15.583 回答
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'
于 2013-03-17T02:01:53.027 回答
1

试试这个:

s = '003de70fc98a'
':'.join(s[i]+s[i+1] for i in range(0, len(s), 2))
=> '00:3d:e7:0f:c9:8a'
于 2013-03-17T02:05:21.513 回答