logo

Python Nested Loops

I programmeringsspråket Python er det to typer løkker som er det for løkke og mens loop . Ved å bruke disse løkkene kan vi lage nestede løkker i Python. Nestede løkker betyr løkker inne i en løkke. For eksempel mens-løkke inne i for-løkken, for loop inne i for-løkken, etc.

endre legg til kolonne orakel
Python Nested Loops

Python Nested Loops



Python Nested Loops Syntaks:

Outer_loop-uttrykk:

Inner_loop-uttrykk:

Uttalelse i inner_loop



Uttalelse inne i Outer_loop

Eksempler på Python Nested Loops

Eksempel 1: Grunnleggende eksempel på Python Nested Loops

Python3






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

>

>

Produksjon:

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>

>

>

Tidskompleksitet:2)

Hjelpeplass: O(1)

Eksempel 2: Skrive ut multiplikasjonstabell ved bruk av Python nestet for løkker

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

>

>

Produksjon:

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>

Tidskompleksitet:2)

Hjelpeplass: O(1)

I eksemplet ovenfor tar vi en ytre for løkke som går fra 2 til 3 for multiplikasjonstabellen med 2 og 3, og deretter i den løkken tar vi en indre for løkke som vil løpe fra 1 til 10 inne i at vi skriver ut multiplikasjon tabellen ved å multiplisere hver iterasjonsverdi av indre sløyfe med iterasjon verdi av ytre sløyfe som vi ser i utgangen nedenfor.

Eksempel 3: Utskrift med forskjellige indre og ytre nestede løkker

Python3




konvertere objekt til streng
# 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 ')>

>

>

kartskrift

Produksjon:

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>

Tidskompleksitet:2)

Hjelpeplass: O(1)

I dette eksemplet initialiserer vi to lister med noen strenger. Lagre størrelsen på list2 i 'list2_Size' ved å bruke len()-funksjonen og bruk den i while-løkken som en teller. Etter det kjøres en ytre for loop til iterere over liste1 og inne i den sløyfen kjører en indre mens-løkke for å iterere over liste2 ved å bruke listeindeksering inne i at vi skriver ut hver verdi av liste2 for hver verdi av liste1.

Bruke break statement i nestede løkker

Det er en type sløyfekontrolluttalelse. I en loop kan vi bruke bryte uttalelse for å gå ut av løkken. Når vi bruker en break-setning i en loop, hopper den over resten av iterasjonen og avslutter loopen. la oss forstå det ved å bruke et eksempel.

Kode:

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

>

>

Produksjon:

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

Tidskompleksitet:2)

Hjelpeplass: O(1)

Koden ovenfor er den samme som i eksempel 2 I denne koden bruker vi en break-setning inne i den indre sløyfen ved å bruke hvis uttalelse . Inne i den indre sløyfen hvis 'i' blir lik 'j', vil den indre sløyfen avsluttes og ikke utføres resten av iterasjonen som vi kan se i utdatatabellen til 3 skrives ut opptil to iterasjoner fordi i neste iterasjon 'i' blir lik 'j' og løkken brytes.

Bruker fortsette-setningen i nestede løkker

En fortsette-setning er også en type sløyfekontrollsetning. Det er akkurat det motsatte av pauseerklæringen. Fortsett-setningen tvinger løkken til å hoppe til neste iterasjon av løkken, mens break-setningen avslutter løkken. La oss forstå det ved å bruke kode.

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

>

>

Produksjon:

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>

Tidskompleksitet:2)

Hjelpeplass: O(1)

I koden ovenfor i stedet for å bruke en break-setning, bruker vi en continue-setning. Her når 'i' blir lik 'j' i den indre sløyfen hopper den over resten av koden i den indre sløyfen og hopper på neste iterasjon som vi ser i utgangen 2 * 2 = 4 og 3 * 3 = 9 er ikke skrevet ut fordi 'i' på det tidspunktet blir lik 'j'.

Enkeltlinje Nestede løkker ved hjelp av listeforståelse

For å konvertere de flerlinjede nestede løkkene til en enkelt linje, skal vi bruke listeforståelse i Python . Listeforståelse inkluderer parenteser som består av uttrykk, som utføres for hvert element, og for-løkken for å iterere over hvert element i listen.

Syntaks for listeforståelse:

ny liste = [ uttrykk (element) til element i gammelliste hvis betingelse ]

Kode:

java matematikk pow

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

>

>

Produksjon:

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

I koden ovenfor lagrer vi en liste inne i listen ved å bruke listeforståelse i den indre løkken av listeforståelse [j for j i område(3)] for å lage en liste [0, 1, 2] for hver iterasjon av den ytre loop for i in range(5).

Tidskompleksitet:2) Det er raskere enn nestede løkker

Hjelpeplass: På)