スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【Python】for文の中にfor文(2重・多重ループ)の使い方&注意点を例付きで解説!

Pythonには、for文の中に別のfor文をネストすることができるプログラミングテクニックがあります。

そこで、この記事では、『for文の中にfor文』に焦点を当て、その使い方や注意点について詳しく解説していきます。
また、実際のコード例を交えながら、視覚的に分かりやすく説明します。

for文の中にfor文を書くとは?

Pythonのfor文は、リストやタプルなどのイテラブルオブジェクト(iterable object)を順番に取り出して処理するためのループ構文です。
このfor文の中にさらに別のfor文を書くことで、2重ループやそれ以上の多重ループを実現することができます。
例えば、以下のような構文です。

for 外側の変数 in 外側のイテラブルオブジェクト:
    for 内側の変数 in 内側のイテラブルオブジェクト:
        # 内側のループの処理
    # 外側のループの処理

2重ループの例

具体的なコード例を見てみましょう。
以下の例は、2つのリストから要素の組み合わせを取り出す場合のコードです。

fruits = ["apple", "banana", "cherry"]
colors = ["red", "yellow", "blue"]

for fruit in fruits:
    for color in colors:
        print(fruit, color)

このコードでは、fruitsの要素を一つずつ取り出し、それぞれの要素に対してcolorsの要素を一つずつ組み合わせています。
出力結果は以下のようになります。

apple red
apple yellow
apple blue
banana red
banana yellow
banana blue
cherry red
cherry yellow
cherry blue

多重(3重ループ)の例

次に3重の場合を見てみましょう。

sizes = ["small", "medium", "large"]
fruits = ["apple", "banana", "cherry"]
colors = ["red", "yellow", "blue"]

for size in sizes:
    for fruit in fruits:
        for color in colors:
            print(size, fruit, color)

このコードでは、sizes、fruits、colorsのそれぞれの要素を組み合わせて出力しています。
出力結果は以下のようになります。

small apple red
small apple yellow
small apple blue
small banana red
small banana yellow
small banana blue
small cherry red
small cherry yellow
small cherry blue
medium apple red
medium apple yellow
medium apple blue
medium banana red
medium banana yellow
medium banana blue
medium cherry red
medium cherry yellow
medium cherry blue
large apple red
large apple yellow
large apple blue
large banana red
large banana yellow
large banana blue
large cherry red
large cherry yellow
large cherry blue

このように、3重のforループを使用することで、さらに多様な組み合わせを生成することができます。
ただし、処理が複雑になるため、注意が必要です。

使用する際の注意点

2重(多重)のfor文を使う際には、以下の点に注意してください。

処理の流れを理解する: 外側のループが1回回るごとに、内側のループが完全に実行されます。つまり、内側のループの処理が外側のループの回数分だけ繰り返されることになります。
計算量の増加: 多重ループを使うと処理の回数が指数関数的に増加するため、計算量の観点から注意が必要です。

おすすめ書籍

Pythonプログラミングを手を動かしながら学びたい方に、『独習Python』がおすすめです。
この書籍は、プログラミング初心者向けにわかりやすく丁寧に解説がされており、独習用に使用することができます。
Pythonの基本から標準ライブラリ、オブジェクト指向構文、モジュールまで幅広く解説されており、サンプルプログラムを例示しながら丁寧に説明されています。
初心者から再入門者、学生など、Python言語をしっかり身につけたい方にお勧めの一冊です。

まとめ

Pythonのfor文の中に別のfor文を書くことで、効率的に多重ループを実現することができます。
しかし、計算量の増加や処理の流れを理解することが重要です。
適切に活用することで、より複雑な処理を簡潔に表現することができます。
是非、自分のプログラムに取り入れてみてください。