Python プログラミング言語には 2 種類のループがあります。 for ループ そして while ループ 。これらのループを使用して、Python でネストされたループを作成できます。ネストされたループとは、ループ内のループを意味します。たとえば、for ループ内の while ループ、for ループ内の for ループなどです。
バイトから文字列へのPython

Python の入れ子ループ
Python のネストされたループの構文:
外部ループ式:
内部ループ式:
inner_loop 内のステートメント
アウターループ内のステートメント
Python のネストされたループの例
例 1: Python の入れ子ループの基本的な例
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
出力:
1 4 1 5 2 4 2 5>
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> i>=> 0> while> i <>len>(x) :> >j>=> 0> >while> j <>len>(y) :> >print>(x[i] , y[j])> >j>=> j>+> 1> >i>=> i>+> 1> |
>
>
時間計算量: の上2)
補助スペース: ○(1)
例 2: Python のネストされた for ループを使用した九九の出力
Python3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
出力:
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 2 * 10 = 20 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30>
時間計算量: の上2)
Java演算子
補助スペース: ○(1)
上の例では、2 と 3 の乗算表に対して 2 から 3 まで実行される外側の for ループを取得し、そのループ内で 1 から 10 まで実行される内側の for ループを取得し、その中で乗算を出力しています。内部ループの各反復値を乗算してテーブルを作成します。 反復 以下の出力にあるように、外側のループの値。
例 3: 異なる内側と外側のネストされたループを使用した印刷
Python3
# Initialize list1 and list2> # with some strings> list1>=> [>'I am '>,>'You are '>]> list2>=> [>'healthy'>,>'fine'>,>'geek'>]> # Store length of list2 in list2_size> list2_size>=> len>(list2)> # Running outer for loop to> # iterate through a list1.> for> item>in> list1:> > ># Printing outside inner loop> >print>(>'start outer for loop '>)> ># Initialize counter i with 0> >i>=> 0> ># Running inner While loop to> ># iterate through a list2.> >while>(i # Printing inside inner loop print(item, list2[i]) # Incrementing the value of i i = i+1 # Printing outside inner loop print('end for loop ')> |
>
>
b+ ツリー
出力:
start outer for loop I am healthy I am fine I am geek end for loop start outer for loop You are healthy You are fine You are geek end for loop>
時間計算量: の上2)
補助スペース: ○(1)
この例では、いくつかの文字列を使用して 2 つのリストを初期化しています。 len() 関数を使用して list2 のサイズを「list2_Size」に格納し、それを while ループ内でカウンターとして使用します。その後、外側の for ループを実行して、 list1 を反復処理する そして、そのループ内で内部の while ループを実行して、リストのインデックス付けを使用して list2 を反復し、list1 のすべての値に対して list2 の各値を出力します。
ネストされたループでの Break ステートメントの使用
ループ制御文の一種です。ループ内では、 ブレークステートメント ループから抜け出すには。ループ内で Break ステートメントを使用すると、残りの反復がスキップされ、ループが終了します。例を使って理解してみましょう。
コード:
Python3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> >if> i>=>=>j:> >break> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
出力:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
時間計算量: の上2)
補助スペース: ○(1)
上記のコードは例 2 と同じです。このコードでは、内部ループ内で Break ステートメントを使用しています。 if ステートメント 。内側のループ内で、「i」が「j」と等しくなった場合、内側のループは終了され、残りの繰り返しは実行されません。出力テーブル 3 でわかるように、次の繰り返しでは最大 2 回の繰り返しが出力されます。 「i」が「j」と等しくなり、ループが終了します。
ネストされたループでの continue ステートメントの使用
continue ステートメントもループ制御ステートメントの一種です。これは、break ステートメントのちょうど逆です。 continue ステートメントはループを強制的にループの次の反復にジャンプさせますが、break ステートメントはループを終了します。コードを使って理解してみましょう。
Python3
アンドロイドはゲームピジョンをプレイできますか
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> >if> i>=>=>j:> >continue> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
出力:
2 * 1 = 2 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 2 * 10 = 20 3 * 1 = 3 3 * 2 = 6 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30>
時間計算量: の上2)
補助スペース: ○(1)
上記のコードでは、break ステートメントを使用する代わりに continue ステートメントを使用しています。ここで、内側のループで 'i' が 'j' に等しくなると、出力 2 * 2 = 4 および 3 * 3 = 9 に見られるように、内側のループのコードの残りの部分がスキップされ、次の反復にジャンプします。その時点で「i」が「j」と等しくなるため、印刷されません。
リスト内包表記を使用した単一行の入れ子ループ
複数行のネストされたループを単一行に変換するには、次を使用します。 Python のリスト内包表記 。リストの内包表記には、要素ごとに実行される式と、リスト内の各要素を反復する for ループで構成される括弧が含まれます。
リスト内包表記の構文:
新しいリスト = [ 式(要素) のために 要素 で 古いリスト もし 状態 ]
コード:
Python3
# Using list comprehension to make> # nested loop statement in single line.> list1>=> [[j>for> j>in> range>(>3>)]> >for> i>in> range>(>5>)]> # Printing list1> print>(list1)> |
>
>
出力:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
上記のコードでは、リスト内包表記 [j for j in range(3)] の内側のループでリスト内包表記を使用してリスト内にリストを格納し、外側のループの反復ごとにリスト [0, 1, 2] を作成しています。 range(5) の i をループします。
時間計算量: の上2) ネストされたループよりも高速です
補助スペース: の上)