PYTHON MEBY

Pythonでセットをループ処理(for element in set)

この記事では、Pythonでセットをループ処理する方法について説明します。for文を使ったシンプルなループ処理から、より高度な処理方法まで、様々な例題を通して解説します。

目次

シンプルなループ処理

Pythonでセットをループ処理する最も基本的な方法は、for文を使用することです。セットの各要素は、順番にループ変数に代入され、ループブロック内の処理が実行されます。

my_set = {1, 2, 3, 4, 5}
for element in my_set:
    print(element)

上記のコードは、セットmy_setの各要素(1, 2, 3, 4, 5)を順に表示します。セットは順序を持たないため、要素の出力順序は実行するたびに異なる可能性があります。

my_set = {"apple", "banana", "cherry"}
for fruit in my_set:
    print(fruit)

文字列型の要素を持つセットでも同様にループ処理できます。出力順序は実行ごとに異なることに注意してください。

要素のインデックスが必要な場合

セットはインデックスを持たないため、通常のリストのようにインデックスを使って要素にアクセスすることはできません。しかし、enumerate関数を使うことで、要素とインデックスの両方を取得できます。

my_set = {1, 2, 3, 4, 5}
for index, element in enumerate(my_set):
    print(f"要素: {element}, インデックス: {index}")

enumerate関数は、セットの各要素とそのインデックスをタプルとして返します。上記のコードでは、f-stringを使って要素とインデックスを同時に表示しています。出力順序は実行ごとに異なる可能性があります。

ループ処理と条件分岐の組み合わせ

ループ処理中に、条件分岐を使用して特定の要素だけを処理したり、処理をスキップしたりすることができます。

my_set = {1, 2, 3, 4, 5}
for element in my_set:
    if element % 2 == 0:
        print(f"偶数: {element}")
    else:
        print(f"奇数: {element}")

上記のコードは、セットの各要素が偶数か奇数かを判定し、それぞれ異なるメッセージを表示します。

複数のセットを同時にループ処理

zip関数を使用することで、複数のセットを同時にループ処理することができます。

set1 = {1, 2, 3}
set2 = {"a", "b", "c"}
for num, char in zip(set1, set2):
    print(f"数値: {num}, 文字: {char}")

zip関数は、複数のイテラブルオブジェクトから要素を1つずつ取り出してタプルとして返します。セットの長さが異なる場合、短い方のセットの長さに合わせてループが終了します。

辞書とセットを組み合わせてループ処理

辞書のキーまたは値がセットの場合、ループ処理でセットの要素にアクセスできます。

my_dict = {"fruits": {"apple", "banana", "cherry"}, "colors": {"red", "green", "blue"}}
for key, value_set in my_dict.items():
    print(f"キー: {key}")
    for value in value_set:
        print(f"  値: {value}")

上記の例では、辞書の各キーと、キーに対応するセットの要素をループ処理しています。

関連記事