logo

Bucles anidados de Python

En el lenguaje de programación Python hay dos tipos de bucles que son en bucle y mientras bucle . Usando estos bucles podemos crear bucles anidados en Python. Los bucles anidados significan bucles dentro de un bucle. Por ejemplo, bucle while dentro del bucle for, bucle for dentro del bucle for, etc.

al método de cadena java
Bucles anidados de Python

Bucles anidados de Python



Sintaxis de bucles anidados de Python:

Expresión de bucle externo:

Expresión de bucle interno:

Declaración dentro de Inner_loop



Declaración dentro de Outer_loop

Ejemplos de bucles anidados de Python

Ejemplo 1: ejemplo básico de bucles anidados de Python

Python3






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

>

>

Producción:

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>

>

>

Complejidad del tiempo: En2)

Espacio Auxiliar: O(1)

Ejemplo 2: imprimir una tabla de multiplicar usando bucles for anidados en Python

Python3


montón y clasificación de montón



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

>

>

Producción:

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>

Complejidad del tiempo: En2)

Espacio Auxiliar: O(1)

En el ejemplo anterior, lo que hacemos es tomar un bucle for externo que va del 2 al 3 para la tabla de multiplicar del 2 y 3 y luego, dentro de ese bucle, tomamos un bucle for interno que se ejecuta del 1 al 10, dentro del cual estamos imprimiendo la multiplicación. tabla multiplicando cada valor de iteración del bucle interno con el iteración valor del bucle externo como vemos en el siguiente resultado.

Ejemplo 3: Impresión utilizando diferentes bucles anidados internos y externos

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

>

>

numero aleatorio java

Producción:

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>

Complejidad del tiempo: En2)

Espacio Auxiliar: O(1)

En este ejemplo, estamos inicializando dos listas con algunas cadenas. Almacene el tamaño de list2 en 'list2_Size' usando la función len() y usándola en el bucle while como contador. Después de eso, ejecute un bucle for externo para iterar sobre lista1 y dentro de ese bucle ejecute un bucle while interno para iterar sobre list2 usando la indexación de listas dentro de la cual estamos imprimiendo cada valor de list2 para cada valor de list1.

Usando una declaración break en bucles anidados

Es un tipo de declaración de control de bucle. En un bucle, podemos usar el declaración de ruptura para salir del bucle. Cuando usamos una declaración break en un bucle, se omite el resto de la iteración y finaliza el bucle. Entendámoslo con un ejemplo.

Código:

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

>

>

Producción:

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

Complejidad del tiempo: En2)

Espacio Auxiliar: O(1)

El código anterior es el mismo que en el Ejemplo 2. En este código estamos usando una declaración de interrupción dentro del bucle interno usando el si declaración . Dentro del bucle interno, si 'i' se vuelve igual a 'j', entonces el bucle interno terminará y no se ejecutará el resto de la iteración, como podemos ver en la tabla de salida de 3, se imprime hasta dos iteraciones porque en la siguiente iteración 'i' se vuelve igual a 'j' y el bucle se rompe.

Usando la declaración continuar en bucles anidados

Una declaración de continuación también es un tipo de declaración de control de bucle. Es todo lo contrario de la declaración de ruptura. La instrucción continue obliga al bucle a saltar a la siguiente iteración del bucle, mientras que la instrucción break finaliza el bucle. Entendámoslo usando código.

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

>

>

matriz en java

Producción:

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>

Complejidad del tiempo: En2)

Espacio Auxiliar: O(1)

En el código anterior, en lugar de utilizar una declaración de interrupción, utilizamos una declaración de continuación. Aquí, cuando 'i' se vuelve igual a 'j' en el bucle interno, se salta el resto del código en el bucle interno y salta a la siguiente iteración como vemos en la salida 2 * 2 = 4 y 3 * 3 = 9 es no se imprime porque en ese punto 'i' se vuelve igual a 'j'.

Bucles anidados de una sola línea mediante comprensión de listas

Para convertir los bucles anidados de varias líneas en una sola línea, usaremos comprensión de listas en Python . La comprensión de la lista incluye corchetes que constan de una expresión, que se ejecuta para cada elemento, y el bucle for para iterar sobre cada elemento de la lista.

Sintaxis de comprensión de listas:

lista nueva = [ expresión (elemento) para elemento en lista antigua si condición ]

Código:

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

>

>

Producción:

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

En el código anterior, estamos almacenando una lista dentro de la lista usando la comprensión de lista en el bucle interno de comprensión de lista [j para j en el rango (3)] para hacer una lista [0, 1, 2] para cada iteración del exterior bucle para i en el rango (5).

Complejidad del tiempo: En2) Es más rápido que los bucles anidados.

Espacio Auxiliar: En)