将Python字符串列表拆分为基于字符的单独列表

tay*_*tot 2 python algorithm list

我试图弄清楚如何根据列表中的字符将以下列表拆分为单独的列表.

list = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01', '@', '2014', '02:06:12', 'Mary', '"login"', '0.01']
Run Code Online (Sandbox Code Playgroud)

我想在引入每个"@"符号后创建一个列表.例如,我希望输出如下:

NewList1 = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01'] 

NewList2 = ['@', '2014', '02:06:12', 'Mary', '"login"', '0.01']
Run Code Online (Sandbox Code Playgroud)

这可能吗?

unu*_*tbu 8

你可以使用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))))
Run Code Online (Sandbox Code Playgroud)

版画

[['@', '2014', '00:03:01', 'Matt', '"login"', '0.01'], ['@', '2014', '02:06:12', 'Mary', '"login"', '0.01']]
Run Code Online (Sandbox Code Playgroud)