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_list
とis_even()
を引数として呼び出され、is_even()
を使ってリストの要素をグループ分けします。grouped_list
には、グループ分けされたリストがリストのリストとして格納されます。
上記のコードを実行すると、以下のような結果が得られます。
[[1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]
この例では、奇数と偶数でグループ分けを行いました。リストの要素が偶数であれば、それ以降に続く偶数の要素も同じグループに属するようになっています。