Nel linguaggio di programmazione Python esistono due tipi di loop che sono per ciclo E ciclo while . Usando questi cicli possiamo creare cicli nidificati in Python. I cicli nidificati significano cicli all'interno di un ciclo. Ad esempio, il ciclo while all'interno del ciclo for, il ciclo for all'interno del ciclo for, ecc.
salva il video di YouTube vlc

Cicli nidificati Python
Sintassi dei cicli nidificati Python:
Espressione del ciclo_esterno:
Espressione del ciclo_interno:
Dichiarazione all'interno di inner_loop
Dichiarazione all'interno di Outer_loop
Esempi di cicli annidati Python
Esempio 1: esempio di base di cicli annidati Python
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
Produzione:
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> |
>
>
Complessità temporale: SU2)
Spazio ausiliario: O(1)
Esempio 2: stampa della tabella di moltiplicazione utilizzando Python nidificati per cicli
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>()> |
>
>
Produzione:
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>
Complessità temporale: SU2)
Spazio ausiliario: O(1)
Nell'esempio sopra quello che facciamo è prendere un ciclo for esterno che va da 2 a 3 per la tabella di moltiplicazione di 2 e 3 e poi all'interno di quel ciclo stiamo prendendo un ciclo for interno che andrà da 1 a 10 all'interno del quale stiamo stampando la moltiplicazione tabella moltiplicando ciascun valore di iterazione del ciclo interno con il iterazione valore del ciclo esterno come vediamo nell'output seguente.
Esempio 3: stampa utilizzando diversi cicli nidificati interni ed esterni
Python3
mockito ogni volta
# 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 ')> |
>
>
stringa Java in numero intero
Produzione:
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>
Complessità temporale: SU2)
Spazio ausiliario: O(1)
In questo esempio, stiamo inizializzando due liste con alcune stringhe. Memorizza la dimensione di list2 in 'list2_Size' utilizzando la funzione len() e utilizzandola nel ciclo while come contatore. Successivamente esegui un ciclo for esterno su scorrere su list1 e all'interno di quel ciclo esegui un ciclo while interno per scorrere su list2 utilizzando l'indicizzazione delle liste all'interno del quale stiamo stampando ogni valore di list2 per ogni valore di list1.
Utilizzo dell'istruzione break nei cicli nidificati
È un tipo di istruzione di controllo del loop. In un ciclo, possiamo usare il file interrompere l'istruzione per uscire dal ciclo. Quando utilizziamo un'istruzione break in un ciclo, salta il resto dell'iterazione e termina il ciclo. capiamolo usando un esempio.
Codice:
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>()> |
>
>
Produzione:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
Complessità temporale: SU2)
Spazio ausiliario: O(1)
Il codice precedente è lo stesso dell'Esempio 2. In questo codice utilizziamo un'istruzione break all'interno del ciclo interno utilizzando the se dichiarazione . All'interno del ciclo interno se 'i' diventa uguale a 'j' allora il ciclo interno verrà terminato e non verrà eseguito il resto dell'iterazione come possiamo vedere nella tabella di output di 3 viene stampato fino a due iterazioni perché nell'iterazione successiva 'i' diventa uguale a 'j' e il ciclo si interrompe.
Utilizzo dell'istruzione continue nei cicli nidificati
Un'istruzione continue è anche un tipo di istruzione di controllo del ciclo. È esattamente l'opposto dell'istruzione break. L'istruzione continue forza il ciclo a saltare alla successiva iterazione del ciclo mentre l'istruzione break termina il ciclo. Capiamolo utilizzando il codice.
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>()> |
>
>
Produzione:
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>
Complessità temporale: SU2)
Spazio ausiliario: O(1)
Nel codice precedente invece di utilizzare un'istruzione break, utilizziamo un'istruzione continue. Qui quando 'i' diventa uguale a 'j' nel ciclo interno salta il resto del codice nel ciclo interno e salta all'iterazione successiva come vediamo nell'output 2 * 2 = 4 e 3 * 3 = 9 è non stampato perché a quel punto 'i' diventa uguale a 'j'.
carattere Java da stringa
Loop nidificati a riga singola utilizzando la comprensione delle liste
Per convertire i cicli nidificati multilinea in una singola riga, utilizzeremo comprensione degli elenchi in Python . La comprensione dell'elenco include parentesi costituite da espressione, che viene eseguita per ciascun elemento, e dal ciclo for per scorrere ciascun elemento dell'elenco.
Sintassi della comprensione delle liste:
newList = [ espressione(elemento) per elemento In oldList Se condizione ]
Codice:
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)> |
>
>
Produzione:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
Nel codice precedente, memorizziamo una lista all'interno della lista utilizzando la comprensione delle liste nel ciclo interno della comprensione delle liste [j for j in range(3)] per creare una lista [0, 1, 2] per ogni iterazione del ciclo esterno loop for i in range(5).
Complessità temporale: SU2) È più veloce dei cicli nidificati
Spazio ausiliario: SU)