logo

Python kapslade loopar

I programmeringsspråket Python finns det två typer av loopar för slinga och medan loop . Med dessa loopar kan vi skapa kapslade loopar i Python. Kapslade slingor betyder slingor inuti en slinga. Till exempel medan loop inuti for-slingan, för loop inuti for-slingan, etc.

partiella derivat i latex
Python kapslade loopar

Python kapslade loopar



Python Nested Loops Syntax:

Outer_loop-uttryck:

Inner_loop-uttryck:

Påstående inuti inner_loop



Uttalande inuti Outer_loop

Exempel på Python-kapslade loopar

Exempel 1: Grundläggande exempel på Python-kapslade loopar

Python3






x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)>

>

>

Produktion:

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>

>

>

Tidskomplexitet:2)

Hjälputrymme: O(1)

Exempel 2: Utskrift av multiplikationstabell med Python kapslad för loopar

Python3




gimp tar bort bakgrund
# 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>()>

>

>

Produktion:

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>

Tidskomplexitet:2)

Hjälputrymme: O(1)

I exemplet ovan tar vi en yttre för slinga som går från 2 till 3 för multiplikationstabellen 2 och 3 och sedan inuti den slingan tar vi en inre för slinga som kommer att löpa från 1 till 10 inuti som vi skriver ut multiplikation genom att multiplicera varje iterationsvärde för den inre slingan med iteration värdet på den yttre slingan som vi ser i utgången nedan.

Exempel 3: Utskrift med olika inre och yttre kapslade öglor

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 ')>

>

>

strängformat

Produktion:

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>

Tidskomplexitet:2)

Hjälputrymme: O(1)

I det här exemplet initierar vi två listor med några strängar. Lagra storleken på list2 i 'list2_Size' med len()-funktionen och använd den i while-loopen som en räknare. Efter det kör en yttre för slinga till iterera över lista1 och inuti den slingan kör en inre while-slinga för att iterera över list2 med listindexering inuti att vi skriver ut varje värde i list2 för varje värde i list1.

Använder break-sats i kapslade loopar

Det är en typ av loop control statement. I en slinga kan vi använda bryta uttalande för att lämna slingan. När vi använder en break-sats i en loop hoppar den över resten av iterationen och avslutar loopen. låt oss förstå det med ett exempel.

Koda:

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>()>

>

>

Produktion:

2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>

Tidskomplexitet:2)

Hjälputrymme: O(1)

Ovanstående kod är densamma som i exempel 2 I den här koden använder vi en break-sats inuti den inre slingan genom att använda om uttalande . Inuti den inre slingan om 'i' blir lika med 'j' så kommer den inre slingan att avslutas och inte exekveras resten av iterationen som vi kan se i utdatatabellen för 3 skrivs ut upp till två iterationer eftersom i nästa iteration 'i' blir lika med 'j' och slingan bryts.

Använder continu-satsen i kapslade loopar

En continue-sats är också en typ av loopkontrollsats. Det är precis motsatsen till pauspåståendet. Continue-satsen tvingar loopen att hoppa till nästa iteration av loopen medan break-satsen avslutar loopen. Låt oss förstå det genom att använda 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>()>

>

>

Produktion:

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>

Tidskomplexitet:2)

Hjälputrymme: O(1)

I koden ovan, istället för att använda en break-sats, använder vi en continue-sats. Här när 'i' blir lika med 'j' i den inre slingan hoppar den över resten av koden i den inre slingan och hoppar på nästa iteration som vi ser i utgången 2 * 2 = 4 och 3 * 3 = 9 är skrivs inte ut eftersom 'i' vid den tidpunkten blir lika med 'j'.

En rad Kapslade loopar med hjälp av listförståelse

För att konvertera de flerradiga kapslade slingorna till en enda linje kommer vi att använda listförståelse i Python . Listförståelse inkluderar parenteser som består av uttryck, som exekveras för varje element, och for-loopen för att iterera över varje element i listan.

Syntax för listförståelse:

kassan i git

ny lista = [ expression(element) för element i gammal lista om skick ]

Koda:

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)>

>

>

Produktion:

[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>

I koden ovan lagrar vi en lista i listan med hjälp av listförståelse i den inre slingan av listförståelse [j för j i intervall(3)] för att skapa en lista [0, 1, 2] för varje iteration av den yttre loop för i i intervallet(5).

Tidskomplexitet:2) Det är snabbare än kapslade slingor

Hjälputrymme: På)