将列表中的元素分隔开,但仍按顺序排列另一个列表



我想分离这个列表

[1000011]

并将其转换为

["1", "0000", "11"]

itertools有一个groupby()方法,它应该完全按照您的意愿执行。

from itertools import groupby
vals = [1000011]
splitVals = []
for val in vals:
splitVals.extend(''.join(g) for k,g in groupby(str(val)))
print(splitVals)

或者,如果您愿意,您可以将for循环压缩为一行:

splitVals = [''.join(g) for val in vals for k,g in groupby(str(val))]

演示:在线试用!

您可以使用itertools.groupby:

l = [1000011]
from itertools import groupby
[[''.join(g) for k,g in groupby(str(x))] for x in l]

输出:['1', '0000', '11']

如果输入列表中有几个值:

输入:l = [1000011, 1221]

输出:[['1', '0000', '11'], ['1', '22', '1']]

最新更新