実際の動作例は以下のようになります。
指定したキー(ここでは lambda x: x % 2)の値が同じであれば、グループとされます。連続要素の順番は変わりません。
>>> from itertools import groupby >>> ints = (1, 3, 2, 4, 1, 5, 3, 2, 2) >>> for key, group in groupby(ints, key=lambda x: x % 2): ... print(key) ... print(list(group)) ... print('') ... 1 [1, 3] 0 [2, 4] 1 [1, 5, 3] 0 [2, 2]
具体的な使い方として、文字列のリストを頭文字を強調した形で文字出力する例を示す。
>>> from itertools import groupby >>> names = ('ABC', 'Ada', 'ALGOL', 'C', 'C#', 'C++', 'CoffeeScript', 'Pascal', 'PHP', 'Prolog', 'Python') >>> for k, g in groupby(names, key=lambda x: x[0]): ... print(k + ' __________') ... for i in g: ... print(i) ... A _____________ ABC Ada ALGOL C _____________ C C# C++ CoffeeScript P _____________ Pascal PHP Prolog Python
0 件のコメント:
コメントを投稿