【发布时间】:2016-11-23 20:02:59
【问题描述】:
我有一个元组列表,其中一些元组将“开始”和“结束”作为元组中的第一项。我想将元组列表存储到元组列表中,其中子列表按它们是否位于第一项中具有“开始”的元组和第一项中的“结束”之间进行分组。
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')]
【问题讨论】:
标签: python list tuples itertools