Python programmēšanas valodā ir divu veidu cilpas, kas ir cilpai un kamēr cilpa . Izmantojot šīs cilpas, mēs varam izveidot ligzdotas cilpas programmā Python. Ligzdotas cilpas nozīmē cilpas cilpas iekšpusē. Piemēram, kamēr cilpa for cilpas iekšpusē, for cilpa for cilpas iekšpusē utt.
kāda ir atšķirība starp megabaitu un gigabaitu

Python ligzdotas cilpas
Python ligzdoto cilpu sintakse:
Outer_loop izteiksme:
Inner_loop izteiksme:
Paziņojums iekšā inner_loop
Paziņojums iekšpusē Outer_loop
Python ligzdoto cilpu piemēri
1. piemērs: Python ligzdoto cilpu pamata piemērs
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
Izvade:
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> |
>
>
Laika sarežģītība: O(n2)
Palīgtelpa: O(1)
2. piemērs. Reizināšanas tabulas drukāšana, izmantojot Python ligzdotu cilpām
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>()> |
>
>
Izvade:
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>
Laika sarežģītība: O(n2)
Palīgtelpa: O(1)
Iepriekš minētajā piemērā mēs paņemam ārējo for cilpu, kas darbojas no 2 līdz 3 reizināšanas tabulai ar 2 un 3, un tad šajā cilpā mēs uzņemam iekšējo for cilpu, kas darbosies no 1 līdz 10 iekšā, kurā mēs drukājam reizināšanu. tabulā, reizinot katru iekšējās cilpas iterācijas vērtību ar iterācija ārējās cilpas vērtība, kā redzams zemāk esošajā izvadā.
hashmap iekšējā darbība
3. piemērs. Drukāšana, izmantojot dažādas iekšējās un ārējās ligzdotas cilpas
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 ')> |
>
>
java virkne uz veselu skaitli
Izvade:
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>
Laika sarežģītība: O(n2)
Palīgtelpa: O(1)
Šajā piemērā mēs inicializējam divus sarakstus ar dažām virknēm . Saglabājiet list2 lielumu sadaļā “list2_Size”, izmantojot funkciju len() un izmantojot to while cilpā kā skaitītāju. Pēc tam palaidiet ārējo for cilpu uz atkārtojiet sarakstu1 un šajā cilpā palaidiet iekšējo kamēr cilpu, lai atkārtotu sarakstu2, izmantojot saraksta indeksēšanu, kurā mēs drukājam katru list2 vērtību katrai list1 vērtībai.
Pārtraukuma paziņojuma izmantošana ligzdotās cilpās
Tas ir cilpas vadības paziņojuma veids. Ciklā mēs varam izmantot pārtraukuma paziņojums lai izietu no cilpas. Kad cilpā izmantojam pārtraukuma paziņojumu, tā izlaiž pārējo iterāciju un pārtrauc cilpu. sapratīsim to, izmantojot piemēru.
Kods:
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>()> |
>
>
Izvade:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
Laika sarežģītība: O(n2)
Palīgtelpa: O(1)
Iepriekš minētais kods ir tāds pats kā 2. piemērā. Šajā kodā mēs izmantojam pārtraukuma paziņojumu iekšējās cilpas iekšpusē, izmantojot ja paziņojums . Ja iekšējās cilpas iekšpusē 'i' kļūst vienāds ar 'j', tad iekšējā cilpa tiks pārtraukta un netiks izpildīta pārējā iterācijas daļa, kā redzams izvades tabulā 3, tiek izdrukāta līdz divām iterācijām, jo nākamajā iterācijā “i” kļūst vienāds ar “j”, un cilpa pārtrauc.
Turpināšanas priekšraksta izmantošana ligzdotās cilpās
Paziņojums turpināt ir arī cilpas vadības paziņojuma veids. Tas ir tieši pretējs pārtraukuma paziņojumam. Paziņojums turpināt liek cilpai pāriet uz nākamo cilpas iterāciju, savukārt pārtraukuma paziņojums pārtrauc cilpu. Sapratīsim to, izmantojot kodu.
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>()> |
>
mīlivecricket.
>
Izvade:
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>
Laika sarežģītība: O(n2)
Palīgtelpa: O(1)
Iepriekš minētajā kodā tā vietā, lai izmantotu pārtraukuma paziņojumu, mēs izmantojam turpinājuma priekšrakstu. Šeit, kad 'i' kļūst vienāds ar 'j' iekšējā cilpā, tas izlaiž pārējo iekšējās cilpas kodu un pāriet uz nākamo iterāciju, kā redzams izejā 2 * 2 = 4 un 3 * 3 = 9 ir netiek drukāts, jo tajā brīdī “i” kļūst vienāds ar “j”.
Viena rinda Ligzdotas cilpas, izmantojot saraksta izpratni
Lai pārvērstu vairāku rindiņu ligzdotās cilpas vienā rindā, mēs to izmantosim saraksta izpratne Python . Saraksta izpratne ietver iekavas, kas sastāv no izteiksmes, kas tiek izpildīta katram elementam, un for cilpas, lai atkārtotu katru saraksta elementu.
Saraksta izpratnes sintakse:
jauns saraksts = [ izteiksme(elements) priekš elements iekšā vecais saraksts ja stāvokli ]
Kods:
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)> |
>
>
Izvade:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
Iepriekš minētajā kodā mēs saglabājam sarakstu sarakstā, izmantojot saraksta izpratni iekšējā saraksta izpratnes cilpā [j nozīmē j diapazonā (3)], lai izveidotu sarakstu [0, 1, 2] katrai ārējās iterācijas. cilpa i diapazonā (5).
Laika sarežģītība: O(n2) Tas ir ātrāks nekā ligzdotas cilpas
Palīgtelpa: O(n)