1

簡潔なステートメントを使用して、16進文字列( '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 に答える