Python 3でitertools.groupby()を使う方法は?

PYTHON3 チュートリアル

Python 3のitertools.groupby()を使う方法

Pythonのitertoolsモジュールには、データをグループ化するための便利な関数が含まれています。その中でも、groupby()関数は特に便利で、連続する要素をグループ化する際に役立ちます。

itertools.groupby()の基本的な使い方

from itertools import groupby

data = [1, 1, 2, 2, 3, 3, 1, 1, 1]

for key, group in groupby(data):
    print(key, list(group))

上記のコードでは、リストdata内の連続する要素をグループ化しています。出力結果は以下の通りです。

1 [1, 1]
2 [2, 2]
3 [3, 3]
1 [1, 1, 1]

カスタムキー関数を使用したitertools.groupby()の例

groupby()関数は、オプションのキー関数を指定することもできます。以下の例では、偶数と奇数の要素をグループ化しています。

def custom_key_func(x):
    return "even" if x % 2 == 0 else "odd"

data = [1, 2, 3, 4, 5, 6]

for key, group in groupby(data, key=custom_key_func):
    print(key, list(group))

上記のコードの出力結果は以下の通りです。

odd [1]
even [2]
odd [3]
even [4]
odd [5]
even [6]

itertools.groupby()を使った文字列のグループ化

最後に、groupby()関数を使って文字列をグループ化する例を示します。

from itertools import groupby

data = "AAABBBCCDAA"

for key, group in groupby(data):
    print(key, list(group))

上記のコードの出力結果は以下の通りです。

A ['A', 'A', 'A']
B ['B', 'B', 'B']
C ['C', 'C']
D ['D']
A ['A', 'A']

以上がPython 3のitertools.groupby()関数の使い方と具体的な例についての解説でした。この関数を活用することで、データの効率的なグループ化が可能となります。

Python 3のitertools.groupby()関数は、リストやイテレータから連続する要素をグループ化するために使用されます。この関数は、連続する要素を同じグループとしてまとめ、それぞれのグループに対してキーとグループのイテレータを返します。

itertools.groupby()関数を使用するためには、まずitertoolsモジュールをインポートする必要があります。次に、グループ化したい要素を含むリストやイテレータを用意します。

以下は、itertools.groupby()関数を使用してリストの要素をグループ化する例です:

“`python
import itertools

data = [1, 1, 2, 3, 3, 3, 4, 5, 5]

for key, group in itertools.groupby(data):
print(key, list(group))
“`

このコードでは、リストdataの要素が連続している場合にそれらをグループ化し、それぞれのグループのキーと要素を表示します。itertools.groupby()関数は連続する要素をグループ化するため、事前にソートされたデータを使用することが重要です。

itertools.groupby()関数を使うことで、Python 3で簡単に要素をグループ化することができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments