logo

Vnořené smyčky Pythonu

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

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)