我有一个类似于此的嵌套列表,并按时间升序排序:
[[TIME, 'b', 0],
[TIME, 'b', 1],
[TIME, 'b', 1],
[TIME, 'b', 1],
[TIME, 'b', 10],
[TIME, 'b', 0],
[TIME, 'b', 1],
[TIME, 'b', 1],
[TIME, 'b', 10],
[TIME, 'b', 0],
[TIME, 'b', 1],
[TIME, 'b', 1],
[TIME, 'b', 1],
[TIME, 'b', 1],
[TIME, 'b', 10]]
每个列表中的第三项是 0、1 或 10。0 代表开始,1 代表移动,10 代表结束。我怎样才能将它拆分成一个进一步的嵌套列表,这样我最终会得到一个类似于这样的旅程列表:
[[[TIME, 'b', 0],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 10]],
[[TIME, 'b', 0],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 10]],
[[TIME, 'b', 0],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 10]]]
请您参考如下方法:
可能有更 pythonic 的方法来做到这一点,但这是实用的、直接的并且应该很容易理解。 biglist 保存初始数据。
newlist = []
sublist = []
for i in biglist:
sublist.append(i)
if i[2] == 10:
newlist.append(sublist)
sublist = []
给出:
[[[TIME, 'b', 0],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 10]],
[[TIME, 'b', 0],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 10]],
[[TIME, 'b', 0],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 1],[TIME, 'b', 10]]]
