itertools.groupby
操作内で作成されたリストがあります。
def yield_unpacked_list():
for key, grp in itertools.groupby(something_to_groupby, key=lambda x: x[0]):
subset_of_grp = list(item[2] for item in list(grp))
yield key, subset_of_grp
たとえば、 と でsubset_of_grp
あることが判明した[1, 2, 3, 4]
場合[5, 6, 7, 8]
:
for m in yield_unpacked_list():
print m
印刷されます:
('first_key', [1, 2, 3, 4])
('second_key', [5, 6, 7, 8])
さて、関数の定義に戻ります。明らかに、次は構文エラー (*
演算子) です。
def yield_unpacked_list():
for key, grp in itertools.groupby(something_to_groupby, key=lambda x: x[0]):
subset_of_grp = list(item[2] for item in list(grp))
yield key, *subset_of_grp
同じ print
ループの次の結果が[list]
括弧なしになるようにします。
('first_key', 1, 2, 3, 4)
('second_key', 5, 6, 7, 8)
ここでprint
は説明のみを目的としていることに注意してください。単純化された構造の恩恵を受ける他の機能がありtuple
ます。