Python programavimo kalboje yra dviejų tipų kilpos už kilpą ir o kilpa . Naudodami šias kilpas galime sukurti įdėtas kilpas Python. Įdėtos kilpos reiškia kilpas kilpos viduje. Pvz., while ciklas for ciklo viduje, for ciklas for ciklo viduje ir pan.
Android telefono nustatymų meniu

Python įdėtos kilpos
Python įdėtos kilpos sintaksė:
Outer_loop išraiška:
Inner_loop išraiška:
Pareiškimas viduje inner_loop
Pareiškimas Outer_loop viduje
Python įdėtos kilpos pavyzdžiai
1 pavyzdys: pagrindinis Python įdėtųjų kilpų pavyzdys
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
Išvestis:
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> |
>
>
Laiko sudėtingumas: O (n2)
Pagalbinė erdvė: O(1)
2 pavyzdys: Daugybos lentelės spausdinimas naudojant Python įdėtą kilpoms
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>()> |
>
>
Išvestis:
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>
Laiko sudėtingumas: O (n2)
Pagalbinė erdvė: O(1)
Aukščiau pateiktame pavyzdyje mes paimame išorinę ciklą nuo 2 iki 3 daugybos lentelei iš 2 ir 3, o tada tos kilpos viduje paimame vidinę kilpą, kuri veiks nuo 1 iki 10 viduje, kurioje spausdiname daugybą. lentelę padauginus kiekvieną vidinės kilpos iteracijos reikšmę iš iteracija išorinės kilpos vertė, kaip matome toliau pateiktoje išvestyje.
3 pavyzdys: Spausdinimas naudojant skirtingas vidines ir išorines įdėtas kilpas
Python3
saulėtas deol
# 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 ')> |
>
>
java rinkinys
Išvestis:
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>
Laiko sudėtingumas: O (n2)
Pagalbinė erdvė: O(1)
Šiame pavyzdyje inicijuojame du sąrašus su kai kuriomis eilutėmis . Išsaugokite list2 dydį lauke „list2_Size“, naudodami funkciją len() ir naudokite jį while cikle kaip skaitiklį. Po to paleiskite išorinę for kilpą kartoti sąrašą1 ir toje kilpoje paleiskite vidinę ciklą, o ciklą kartokite per list2, naudodami sąrašo indeksavimą, kuriame spausdiname kiekvieną list2 reikšmę kiekvienai list1 reikšmei.
Pertraukos teiginio naudojimas įdėtose kilpose
Tai yra kilpos valdymo teiginio tipas. Kilpoje galime naudoti pertraukos pareiškimas išeiti iš kilpos. Kai cikle naudojame lūžio teiginį, jis praleidžia likusią iteracijos dalį ir užbaigia kilpą. supraskime tai naudodami pavyzdį.
Kodas:
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>()> |
>
>
Išvestis:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
Laiko sudėtingumas: O (n2)
Pagalbinė erdvė: O(1)
Aukščiau pateiktas kodas yra toks pat kaip 2 pavyzdyje Šiame kode mes naudojame pertraukos teiginį vidinės kilpos viduje, naudodami jei teiginys . Vidinės kilpos viduje, jei „i“ tampa lygus „j“, vidinė kilpa bus nutraukta ir nebus vykdoma likusi iteracijos dalis, kaip matome 3 išvesties lentelėje, spausdinama iki dviejų iteracijų, nes kitoje iteracijoje „i“ tampa lygus „j“ ir kilpa nutrūksta.
Teiginio tęsti naudojimas įdėtose kilpose
Teiginys tęsti taip pat yra ciklo valdymo sakinio tipas. Tai tiesiog priešinga teiginiui break. Teiginys tęsti verčia kilpą pereiti prie kitos ciklo iteracijos, o sakinys break užbaigia kilpą. Supraskime tai naudodami kodą.
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>()> |
>
>
Išvestis:
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>
Laiko sudėtingumas: O (n2)
Pagalbinė erdvė: O(1)
Aukščiau pateiktame kode vietoj pertraukos teiginio naudojame teiginį tęsti. Kai „i“ vidinėje kilpoje tampa lygus „j“, jis praleidžia likusį kodą vidinėje kilpoje ir pereina į kitą iteraciją, kaip matome išvestyje 2 * 2 = 4 ir 3 * 3 = 9 nespausdinama, nes tuo metu „i“ tampa lygus „j“.
stygos suskaidytas bash
Viena eilutė Įdėtos kilpos naudojant sąrašo supratimą
Norėdami konvertuoti kelių eilučių įdėtas kilpas į vieną eilutę, naudosime sąrašo supratimas Python . Sąrašo supratimas apima skliaustus, sudarytus iš išraiškos, kuri vykdoma kiekvienam elementui, ir ciklo for, kuris kartojasi per kiekvieną sąrašo elementą.
Sąrašo supratimo sintaksė:
naujas sąrašas = [ išraiška (elementas) dėl elementas in senasis sąrašas jeigu sąlyga ]
Kodas:
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)> |
>
>
Išvestis:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
Aukščiau pateiktame kode mes saugome sąrašą sąrašo viduje, naudodami sąrašo supratimą vidinėje sąrašo supratimo kilpoje [j for j diapazone (3)], kad sudarytume sąrašą [0, 1, 2] kiekvienai išorinio kartojimo iteracijai. kilpa i diapazone (5).
Laiko sudėtingumas: O (n2) Tai greitesnė nei įdėtos kilpos
Pagalbinė erdvė: O(n)