実際の動作例は以下のようになります。
指定したキー(ここでは 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 件のコメント:
コメントを投稿