[Python] リストの要素を特定の条件でグループ分けする方法を解説!

Python

Pythonでリストの要素を特定の条件でグループ分けする方法とは

Pythonでリストの要素を特定の条件でグループ分けするには、itertools.groupby()関数を使う方法があります。

itertools.groupby()関数は、リストなどのイテラブルオブジェクトを指定した条件でグループ分けするために使われます。

具体的には、リストの要素を条件関数で判定し、判定結果が同じ要素同士をグループ化します。同じ判定結果を持つ要素が複数ある場合は、すべて同じグループになります。

具体的なコード例

以下は、itertools.groupby()関数を使って、リストの要素を条件でグループ分けする例です。

import itertools

# リストを定義する
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 奇数と偶数でグループ分けする条件関数を定義する
def is_even(n):
    return n % 2 == 0

# 条件関数を使ってグループ分けする
grouped_list = [list(group) for key, group in itertools.groupby(my_list, is_even)]

# 結果を出力する
print(grouped_list)

この例では、my_listというリストを定義し、is_even()という条件関数を定義しています。is_even()は、引数の数が偶数かどうかを判定し、偶数であればTrueを、奇数であればFalseを返します。

itertools.groupby()関数は、my_listis_even()を引数として呼び出され、is_even()を使ってリストの要素をグループ分けします。grouped_listには、グループ分けされたリストがリストのリストとして格納されます。

上記のコードを実行すると、以下のような結果が得られます。

[[1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]

この例では、奇数と偶数でグループ分けを行いました。リストの要素が偶数であれば、それ以降に続く偶数の要素も同じグループに属するようになっています。

タイトルとURLをコピーしました