V programovacím jazyce Python existují dva typy smyček, které jsou pro smyčku a zatímco smyčka . Pomocí těchto smyček můžeme vytvářet vnořené smyčky v Pythonu. Vnořené smyčky znamenají smyčky uvnitř smyčky. Například smyčka while uvnitř smyčky for, smyčka for uvnitř smyčky for atd.
získat aktuální datum v jazyce Java

Vnořené smyčky Pythonu
Syntaxe vnořených smyček Pythonu:
Výraz vnější_smyčky:
Výraz vnitřní_smyčky:
Příkaz uvnitř inner_loop
Prohlášení uvnitř Outer_loop
Příklady vnořených smyček v Pythonu
Příklad 1: Základní příklad vnořených smyček Pythonu
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
Výstup:
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> |
>
>
soubor otevřít v java
Časová náročnost: Na2)
Pomocný prostor: O(1)
Příklad 2: Tisk násobilky pomocí Pythonu vnořených smyček 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>()> |
>
>
Výstup:
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>
Časová náročnost: Na2)
Pomocný prostor: O(1)
Ve výše uvedeném příkladu uděláme to, že vezmeme vnější smyčku for běžící od 2 do 3 pro tabulku násobení 2 a 3 a pak uvnitř této smyčky vezmeme vnitřní smyčku for, která bude probíhat od 1 do 10, uvnitř které tiskneme násobení. tabulky vynásobením každé iterační hodnoty vnitřní smyčky s opakování hodnotu vnější smyčky, jak vidíme na níže uvedeném výstupu.
Příklad 3: Tisk pomocí různých vnitřních a vnějších vnořených smyček
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 ')> |
>
>
stringformat
Výstup:
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>
Časová náročnost: Na2)
Pomocný prostor: O(1)
V tomto příkladu inicializujeme dva seznamy s nějakými řetězci . Uložte velikost list2 do ‚list2_Size‘ pomocí funkce len() a použijte ji ve smyčce while jako čítač. Poté spusťte vnější smyčku for iterovat přes seznam1 a uvnitř této smyčky spusťte vnitřní smyčku while pro iteraci přes list2 pomocí indexování seznamu uvnitř, ve kterém tiskneme každou hodnotu seznamu2 pro každou hodnotu seznamu1.
Použití příkazu break ve vnořených smyčkách
Je to typ příkazu řízení smyčky. Ve smyčce můžeme použít příkaz break opustit smyčku. Když v cyklu použijeme příkaz break, přeskočí zbytek iterace a cyklus se ukončí. pochopíme to na příkladu.
Kód:
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>()> |
>
>
Výstup:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
Časová náročnost: Na2)
Pomocný prostor: O(1)
Výše uvedený kód je stejný jako v příkladu 2 V tomto kódu používáme příkaz break uvnitř vnitřní smyčky pomocí if prohlášení . Pokud se uvnitř vnitřní smyčky 'i' stane rovno 'j', pak bude vnitřní smyčka ukončena a neprovede se zbytek iterace, jak můžeme vidět ve výstupní tabulce 3, je vytištěn až dvě iterace, protože v další iteraci 'i' se rovná 'j' a smyčka se přeruší.
Použití příkazu continue ve vnořených smyčkách
Příkaz continue je také typem příkazu řízení smyčky. Je to pravý opak příkazu break. Příkaz continue přinutí smyčku skočit na další iteraci smyčky, zatímco příkaz break smyčku ukončí. Pojďme to pochopit pomocí kódu.
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>()> |
>
>
Výstup:
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>
Časová náročnost: Na2)
Pomocný prostor: O(1)
Ve výše uvedeném kódu místo použití příkazu break používáme příkaz continue. Zde, když se „i“ rovná „j“ ve vnitřní smyčce, přeskočí zbytek kódu ve vnitřní smyčce a skočí na další iteraci, jak vidíme na výstupu 2 * 2 = 4 a 3 * 3 = 9 je nevytištěno, protože v tomto bodě se „i“ rovná „j“.
Jeden řádek Vnořené smyčky pomocí porozumění seznamu
K převodu víceřádkových vnořených smyček na jeden řádek použijeme porozumění seznamu v Pythonu . Porozumění seznamu zahrnuje závorky sestávající z výrazu, který se provádí pro každý prvek, a cyklu for pro iteraci každého prvku v seznamu.
Syntaxe List Comprehension:
novýSeznam = [ výraz (prvek) pro živel v starý seznam -li stav ]
Kód:
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)> |
>
>
podzemnice olejná vs arašídy
Výstup:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
Ve výše uvedeném kódu ukládáme seznam uvnitř seznamu pomocí porozumění seznamu ve vnitřní smyčce porozumění seznamu [j pro j v rozsahu (3)], abychom vytvořili seznam [0, 1, 2] pro každou iteraci vnějšího smyčka pro i v rozsahu (5).
Časová náročnost: Na2) Je rychlejší než vnořené smyčky
Pomocný prostor: Na)