我有一个字符串' 0000000000000201'在python中
dpid_string = '0000000000000201'
将此转换为以下字符串的最佳方法是
00:00:00:00:00:00:02:01
答案 0 :(得分:4)
您将字符串分区为大小为2的块,并将其与str.join()
连接:
':'.join([dpid_string[i:i + 2] for i in range(0, len(dpid_string), 2)])
演示:
>>> dpid_string = '0000000000000201'
>>> ':'.join([dpid_string[i:i + 2] for i in range(0, len(dpid_string), 2)])
'00:00:00:00:00:00:02:01'
答案 1 :(得分:4)
seq = '0000000000000201'
length = 2
":".join([seq[i:i+length] for i in range(0, len(seq), length)])
答案 2 :(得分:1)
虽然不是很简单,但你可以做到
dpid_string = '0000000000000201'
''.join([':' + char if not i % 2 else char for i, char in enumerate(dpid_string)])[1:]
从列表理解中分解:
[char for char in dpid_string]
只是循环遍历字符并将其作为列表返回。''.join(list)
加入完整列表。 i, value in enumerate(list)
[1:]
答案 3 :(得分:1)
使用re.sub
的替代方案:
import re
dpid_string = '0000000000000201'
subbed = re.sub('(..)(?!$)', r'\1:', dpid_string)
# 00:00:00:00:00:00:02:01
读取每2个不在字符串末尾的字符,并将其替换为后面跟:
的两个字符。