私はタプルのリストを持っており、タプルのいくつかは、タプルの最初の項目として「開始」と「終了」を持っています。私はタプルのリストをタプルのリストにバケットしたいと思います。タプルのリストには、最初の項目の「開始」と最初の項目の「終了」のタプルの間に入るかどうかによってサブリストがグループ化されます。特定のテキスト条件に基づいてタプルのリストをグループ化/バケット化する方法はありますか?
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')]