logo

Iterar sobre una lista en Python

El Lista es equivalente a matrices en otros lenguajes, con el beneficio adicional de ser de tamaño dinámico.

En Pitón , la lista es un tipo de contenedor en estructuras de datos, que se utiliza para almacenar varios datos al mismo tiempo. A diferencia de Conjuntos , las listas en Python están ordenadas y tienen un recuento definido. En este artículo, veremos cómo iterar sobre una lista en Python y también cómo recorrer en Python una lista de cadenas.



Python itera sobre una lista

Veamos las diferentes formas de iterar sobre una lista en Python y la comparación de rendimiento entre ellas.

Iterar sobre una lista usando el bucle For

Podemos iterar sobre una lista en Python usando un simple En bucle .

Python3








# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using for loop> for> i>in> list>:> >print>(i)>

>

>

Producción

1 3 5 7 9>

Complejidad del tiempo: O(n): donde n es el número de elementos de la lista.
Espacio auxiliar: O(1) – ya que no utilizamos ningún espacio adicional.

Iterar a través de una lista usando f o bucle y rango()

En caso de que queramos utilizar el bucle for tradicional que itera del número x al número y.

Python3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # getting length of list> length>=> len>(>list>)> > # Iterating the index> # same as 'for i in range(len(list))'> for> i>in> range>(length):> >print>(>list>[i])>

>

>

Producción

1 3 5 7 9>

Complejidad del tiempo: O(n), donde n es la longitud de la lista de entrada.
Espacio auxiliar: O(1), que es espacio constante

Iterar a través de una lista en Python usando un bucle de tiempo

También podemos iterar sobre una lista de Python usando un mientras bucle .

Python3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Getting length of list> i>=> 0> > # Iterating using while loop> while> i <>len>(>list>):> >print>(>list>[i])> >i>+>=> 1>

>

>

Producción

1 3 5 7 9>

Complejidad del tiempo: O(n) donde n es la longitud de la lista.
Espacio auxiliar: O(1) ya que solo se utiliza una cantidad constante de espacio adicional para las variables i y longitud.

Iterar a través de una lista usando comprensión de la lista

Nosotros podemos usar comprensión de la lista (posiblemente la forma más concreta) de iterar sobre una lista en Python.

Python3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using list comprehension> [>print>(i)>for> i>in> list>]>

>

>

Producción

1 3 5 7 9>

Iterar a través de una lista en Python usando enumerate()

Si queremos convertir la lista en una lista iterable de tuplas (u obtener el índice basado en una verificación de condición, por ejemplo en búsqueda lineal, es posible que necesite guardar el índice del elemento mínimo), puede usar el función enumerar() .

Python3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> > # Using enumerate()> for> i, val>in> enumerate>(>list>):> >print> (i,>','>,val)>

>

lista de fuentes gimp

>

Producción

0 , 1 1 , 3 2 , 5 3 , 7 4 , 9>

Nota: Incluso el método 2 se puede utilizar para encontrar el índice, pero el método 1 no (a menos que se incremente una variable adicional en cada iteración) y el método 5 ofrece una representación concisa de esta indexación.

Iterar a través de una Lista en Python usando la función iter y la siguiente función

Aquí hay un enfoque adicional que utiliza la función iter y la siguiente función:

Python3




# Python3 code to iterate over a list> list> => [>1>,>3>,>5>,>7>,>9>]> # Create an iterator object using the iter function> iterator>=> iter>(>list>)> # Use the next function to retrieve the elements of the iterator> try>:> >while> True>:> >element>=> next>(iterator)> >print>(element)> except> StopIteration:> >pass>

>

>

Producción

1 3 5 7 9>

Complejidad del tiempo: En)
Espacio auxiliar: O(1)

Iterar sobre una lista en Python usando la función map()

Utilizar el mapa() función para aplicar una función a cada elemento de una lista.

Python3




# Define a function to print each element> def> print_element(element):> >print>(element)> # Create a list> my_list>=> [>1>,>3>,>5>,>7>,>9>]> # Use map() to apply the print_element() function to each element of the list> result>=> map>(print_element, my_list)> # Since map() returns an iterator, we need to consume> # the iterator in order to see the output> for> _>in> result:> >pass>

>

>

Producción

1 3 5 7 9>

Complejidad del tiempo: O(n), donde n es la longitud de la lista.
Espacio auxiliar: O(1)

Python itera sobre múltiples listas usando la función zip()

En este ejemplo, la función zip() se utiliza para iterar simultáneamente sobre elementos de dos listas, lista1 y lista2, emparejando los elementos correspondientes en tuplas para su posterior impresión.

Python3




list1>=> [>1>,>2>,>3>]> list2>=> [>'p'>,>'q'>,>'r'>]> # Using zip() to iterate over multiple lists simultaneously> for> i1, i2>in> zip>(list1, list2):> >print>(f>'{i1} ->{i2}'>)>

>

>

Producción

1 ->p 2 -> q 3 -> r>

Iterar sobre una lista en Python usando NumPy

Para listas de n dimensiones muy grandes (por ejemplo, una matriz de imágenes), a veces es mejor utilizar una biblioteca externa como engordado . Podemos usar np. enumerate() para imitar el comportamiento de enumerar. El poder adicional de NumPy proviene del hecho de que incluso podemos controlar la forma de visitar los elementos (orden Fortran en lugar de orden C, digamos :)), pero la única advertencia es que np.nditer trata la matriz como de solo lectura. predeterminado, por lo que se deben pasar indicadores adicionales como op_flags=['readwrite'] para poder modificar elementos.

Python3




import> numpy as geek> # creating an array using> # arrange method> a>=> geek.arange(>9>)> # shape array with 3 rows> # and 4 columns> a>=> a.reshape(>3>,>3>)> # iterating an array> for> x>in> geek.nditer(a):> >print>(x)>

>

>

Producción:

0 1 2 3 4 5 6 7 8>

Complejidad del tiempo: En)
Espacio auxiliar: O(1)