Pythonでネストされたループの書き方と制御をマスターする

Pythonでネストされたループの書き方と制御方法を解説します。具体的なコード例とその詳細な解説、さらには応用例を3つ以上を挙げて、実践的な使い方を学びます。

目次

なぜネストされたループが必要なのか

ネストされたループは、ループの中に別のループを配置する技術です。この構造は多次元データの操作や、複雑な条件を満たすデータを抽出する場合など、多くの場面で使用されます。

基本的なネストされたループの書き方

Pythonでは`for`や`while`ループをネストすることができます。基本的な書き方を見ていきましょう。

# forループをネストする基本的な例
for i in range(3):  # 外側のループ
    for j in range(3):  # 内側のループ
        print(f'i={i}, j={j}')

コードの詳細解説

上記のコードでは、外側のループが`i`を0から2まで変化させ、内側のループが`j`を0から2まで変化させます。これにより、9通り(3×3)の組み合わせが生成されます。

ネストされたループの制御

ネストされたループでも`break`や`continue`を使用することで制御が可能です。ただし、これらの制御文は直近のループにのみ影響を与えます。

# breakを使ったネストされたループの制御例
for i in range(3):  # 外側のループ
    for j in range(3):  # 内側のループ
        if j == 1:
            break  # 内側のループを抜ける
        print(f'i={i}, j={j}')

コードの詳細解説

この例では、内側のループで`j`が1になった場合に`break`が実行され、内側のループが中断されます。しかし、外側のループは影響を受けません。

応用例

ここからは、実際のプログラムでよく使用されるネストされたループの応用例を紹介します。

2次元配列の要素を一括変換

# 2次元配列の全要素を10倍にする
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in range(len(matrix)):
    for j in range(len(matrix[i])):
        matrix[i][j] *= 10
print(matrix)

リストの直積を生成する

# リストAとBの直積を生成
A = [1, 2]
B = ['a', 'b']
product = [(a, b) for a in A for b in B]
print(product)

条件に合う要素の探索

# 2次元配列内で条件に合う要素を探す
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for i in range(len(matrix)):
    for j in range(len(matrix[i])):
        if matrix[i][j] == 5:
            print(f'Found at {i}, {j}')

まとめ

ネストされたループは、複数の条件や多次元データを効率よく処理するための重要なテクニックです。基本的な書き方から、制御方法、さらには応用例までを学び、Pythonプログラミングの幅を広げましょう。

コメント

コメントする

目次