En el llenguatge de programació Python hi ha dos tipus de bucles que són per bucle i bucle while . Utilitzant aquests bucles podem crear bucles imbricats a Python. Els bucles imbricats signifiquen bucles dins d'un bucle. Per exemple, while bucle dins del bucle for, bucle for dins del bucle for, etc.
centos vs rhel

Bucles imbricats de Python
Sintaxi de bucles imbricats de Python:
Expressió de bucle_extern:
Expressió de bucle_interior:
Declaració dins inner_loop
Declaració dins de Outer_loop
Exemples de bucles imbricats de Python
Exemple 1: Exemple bàsic de bucles imbricats de Python
Python 3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
Sortida:
1 4 1 5 2 4 2 5>
Python 3
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> |
>
>
Complexitat temporal: O (n2)
Espai auxiliar: O(1)
Exemple 2: Impressió de la taula de multiplicar amb Python imbricat per bucles
Python 3
# 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>()> |
>
>
Sortida:
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>
Complexitat temporal: O (n2)
Espai auxiliar: O(1)
A l'exemple anterior, el que fem és agafar un bucle for exterior que va del 2 al 3 per a la taula de multiplicar del 2 i el 3 i després dins d'aquest bucle estem agafant un bucle for interior que anirà de l'1 al 10 dins del qual estem imprimint la multiplicació. taula multiplicant cada valor d'iteració del bucle intern amb el iteració valor del bucle exterior tal com veiem a la sortida següent.
Exemple 3: impressió utilitzant diferents bucles imbricats interiors i exteriors
Python 3
què és s en python
# 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 ')> |
>
>
e r exemples de models
Sortida:
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>
Complexitat temporal: O (n2)
Espai auxiliar: O(1)
En aquest exemple, estem inicialitzant dues llistes amb algunes cadenes . Emmagatzemeu la mida de list2 a 'list2_Size' utilitzant la funció len() i utilitzant-la al bucle while com a comptador. Després d'això, executeu un bucle for exterior itera sobre la llista 1 i dins d'aquest bucle, executeu un bucle while intern per iterar sobre list2 mitjançant la indexació de llista dins que estem imprimint cada valor de llista2 per a cada valor de llista1.
Utilitzant la instrucció break en bucles imbricats
És un tipus de declaració de control de bucle. En un bucle, podem utilitzar el declaració de ruptura per sortir del bucle. Quan fem servir una instrucció break en un bucle, omet la resta de la iteració i finalitza el bucle. entenem-ho amb un exemple.
Codi:
Python 3
# 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>()> |
>
>
Sortida:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
Complexitat temporal: O (n2)
Espai auxiliar: O(1)
El codi anterior és el mateix que a l'exemple 2. En aquest codi estem utilitzant una instrucció break dins del bucle intern mitjançant el declaració si . Dins del bucle intern, si 'i' és igual a 'j', el bucle intern s'acabarà i no s'executarà la resta de la iteració, com podem veure a la taula de sortida de 3, s'imprimeix fins a dues iteracions perquè en la següent iteració 'i' esdevé igual a 'j' i el bucle es trenca.
Utilitzant la instrucció continue en bucles imbricats
Una instrucció continue és també un tipus de declaració de control de bucle. És just el contrari de la declaració break. La instrucció continue obliga el bucle a saltar a la següent iteració del bucle, mentre que la instrucció break acaba el bucle. Entenem-ho fent servir el codi.
Python 3
# 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>()> |
>
>
Sortida:
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>
Complexitat temporal: O (n2)
Espai auxiliar: O(1)
Al codi anterior en lloc d'utilitzar una instrucció break, estem utilitzant una instrucció continue. Aquí, quan 'i' esdevé igual a 'j' al bucle interior, salta la resta del codi del bucle interior i salta a la següent iteració com veiem a la sortida 2 * 2 = 4 i 3 * 3 = 9 és no s'imprimeix perquè en aquest punt 'i' esdevé igual a 'j'.
Bucles nius d'una línia utilitzant la comprensió de llistes
Per convertir els bucles imbricats multilínia en una única línia, farem servir comprensió de llistes en Python . La comprensió de la llista inclou claudàtors que consisteixen en expressió, que s'executa per a cada element, i el bucle for per iterar sobre cada element de la llista.
Sintaxi de la comprensió de la llista:
novaLlista = [ expressió (element) per element en llista antiga si condició ]
Codi:
ordena la llista de matrius
Python 3
# 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)> |
>
>
Sortida:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
En el codi anterior, estem emmagatzemant una llista dins de la llista utilitzant la comprensió de la llista al bucle intern de la comprensió de la llista [j per j a l'interval (3)] per fer una llista [0, 1, 2] per a cada iteració de l'exterior. bucle per i dins el rang (5).
Complexitat temporal: O (n2) És més ràpid que els bucles imbricats
Espai auxiliar: O(n)