我有一個元組列表,一些元組有'開始'和'結束'作爲元組中的第一項。我想把元組列表分成一系列元組列表,其中的子列表按照它們是否位於第一項中的「開始」和第一項中的「結束」之間的元組進行分組。如何根據特定的文本標準對元組列表進行分組/分組?
list = [('start',1),('item_1',4),('item_2',2),('end',1),('start',10),('item_1',5),('item_3',2),('end',1),('start',10),('item_1',5),('item_3',2),('item_3',9),('end',1)]]
desired_result = [[('start',1),('item_1',4),('item_2',2),('end',1)],[('start',10),('item_1',5),('item_3',2),('end',1)],[('start',10),('item_1',5),('item_3',9),('item_3',2),('end',1)]]
我想利用GROUPBY和itemgetter收效甚微:
from operator import itemgetter
from itertools import groupby
[list(group) for key, group in itertools.groupby(sorted(list), itemgetter('start','end')]