我正在尝试弄清楚如何根据列表中的字符将以下列表拆分为单独的列表。
list = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01', '@', '2014', '02:06:12', 'Mary', '"login"', '0.01']
我想在引入每个“@”符号后创建一个列表。例如,我希望输出如下:
NewList1 = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01']
NewList2 = ['@', '2014', '02:06:12', 'Mary', '"login"', '0.01']
这可能吗?
最佳答案
你可以使用 itertools.groupby
:
import itertools as IT
import operator
seq = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01', '@', '2014', '02:06:12', 'Mary', '"login"', '0.01']
groups = (list(g) for k,g in IT.groupby(seq, lambda item: item=='@'))
print(list(IT.starmap(operator.add, IT.izip(*[groups]*2))))
打印
[['@', '2014', '00:03:01', 'Matt', '"login"', '0.01'], ['@', '2014', '02:06:12', 'Mary', '"login"', '0.01']]
关于python - 根据字符将 Python 字符串列表拆分为单独的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22747722/