Iterar sobre una lista en Python

List es equivalente a arrays en otros idiomas, con el beneficio adicional de ser de tamaño dinámico. En Python, la lista es un tipo de contenedor en estructuras de datos, que se utiliza para almacenar varios datos al mismo tiempo. A diferencia de los Conjuntos, las listas en Python están ordenadas y tienen un conteo definido.

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

Método #1: Usar el bucle For 

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

Método #2: For loop y range()
En caso de que queramos usar el tradicional for loop 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

No se recomienda iterar usando el índice si podemos iterar sobre los elementos (como se hizo en el Método #1). 
  
Método #3: Usando el ciclo while 

Python3

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

Producción: 

1
3
5
7
9

Método #4: Usar la comprensión de listas (Posiblemente la forma más concreta).  

Python-Foundation-Course

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

Método #5: Usar 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 una búsqueda lineal, es posible que deba guardar el índice del elemento mínimo), debe puede usar la función enumerate(). 

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)

Producción: 

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

Nota: incluso el método n.° 2 se puede usar para encontrar el índice, pero el método n.° 1 no (a menos que se incremente una variable adicional en cada iteración) y el método n.° 5 brinda una representación concisa de esta indexación. 
  
Método #6: Usar numpy
Para listas n-dimensionales muy grandes (por ejemplo, una array de imágenes), a veces es mejor usar una biblioteca externa como numpy. 

Python3

# Python program for
# iterating over array
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

Podemos usar np.ndenumerate() para imitar el comportamiento de la enumeración. 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 el np.nditer trata la array como de solo lectura por predeterminado, por lo que se deben pasar banderas adicionales como op_flags=[‘readwrite’] para que pueda modificar elementos.
 

Publicación traducida automáticamente

Artículo escrito por Uni_Omni y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *