概要
イテレータに対してgroupbyのようなことができる
使用例
以下のようにkeyを指定することでイテレータに対する上位グループを作成することが可能
iterable = ['a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'b3']
s = bucket(iterable, key=lambda x: x[0]) # Bucket by 1st character
sorted(list(s)) # Get the keys
# ['a', 'b', 'c']
a_iterable = s['a']
next(a_iterable)
# 'a1'
next(a_iterable)
# 'a2'
list(s['b'])
# ['b1', 'b2', 'b3']
公式リファレンス
https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.bucket