6.1 Bucle for
En Python, los bucles a través de elementos de una lista a menudo se realizan con el
bucle for
. Es uno de los enfoques más utilizados para iterar sobre una lista,
permitiendo ejecutar un bloque de código para cada elemento en la lista.
Fundamentos del bucle for
El bucle for
en Python recorre cada elemento de la lista, asignando temporalmente
el valor del elemento actual a una variable especificada después de la palabra clave
for
. Ejemplo:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Recorrer una lista en orden inverso se puede realizar con slices:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
print(fruit)
6.2 Bucle for
con índices
Además de recorrer la lista con un for
clásico, puedes recorrer
la lista con un bucle for
junto con la función range()
. Esto
permite trabajar no solo con los elementos en sí, sino también con sus posiciones, lo cual
es necesario para realizar manipulaciones más complejas con los datos.
Fundamentos de la iteración con índices
Para iterar sobre una lista con acceso al índice de cada elemento puedes utilizar el siguiente enfoque:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
print(f'Index: {i}, Element: {my_list[i]}')
Ventajas de usar índices
Usar índices en los bucles permite no solo acceder a cada elemento, sino también modificar elementos de la lista en su lugar. Esto es especialmente útil cuando necesitas modificar la lista durante la iteración.
Ejemplo:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
my_list[i] = my_list[i] * 2
Ejemplos de manipulaciones complejas
Con los índices es fácil implementar algoritmos que requieren acceso simultáneo a varios elementos de la lista, por ejemplo, para comparar el elemento actual con el anterior o el siguiente:
Ejemplo:
my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
if my_list[i] > my_list[i - 1]:
print(f'{my_list[i]} is greater than {my_list[i - 1]}')
6.3 Uso de la función enumerate()
En Python,
la función enumerate()
proporciona una forma conveniente
de iterar sobre los elementos de una lista con acceso simultáneo a sus índices.
Esto es especialmente útil cuando necesitas procesar tanto el índice como el valor
del elemento de la lista dentro del bucle.
Fundamentos de la función enumerate()
La función enumerate()
envuelve la lista en un objeto especial y
devuelve un iterador que produce tuplas (pares de valores), compuestas por
el índice y el valor del elemento:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
print(f'Index: {index}, Element: {element}')
Ahora tienes no solo el elemento, sino también su índice.
Ventajas de enumerate()
El uso de enumerate()
hace que el código sea más legible y
evita la necesidad de gestionar manualmente los índices usando
range(len(...))
. Esto simplifica las manipulaciones de los elementos de la lista,
como modificar, acceder a los elementos y realizar verificaciones condicionales.
Ejemplos de uso
enumerate()
es ideal para tareas donde se requiere
modificar elementos de la lista simultáneamente o comparar elementos con sus
índices:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
if index % 2 == 0:
print(f'Element {element} at even index {index}')
6.4 Bucle while
Hemos discutido for
, ahora hablemos sobre el bucle while
. Este bucle también puede ser útil al trabajar con elementos de una lista.
Recuerda que el bucle while
comienza su ejecución verificando
una condición. Si la condición es verdadera, se ejecuta el cuerpo del bucle y luego se
verifica la condición nuevamente. El proceso se repite hasta que la condición sea
falsa.
Ejemplo de iteración sobre una lista
Supongamos que tienes una lista de números y quieres iterar a través de ella hasta que encuentres un cierto valor:
numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
print(numbers[i])
i += 1
No es muy diferente al bucle for
, ¿verdad? Pero hay casos en los que no necesitamos
usar un índice para trabajar con los elementos de la lista. Por ejemplo, si la lista contiene
ciertas tareas, se deben extraer una por una de la lista, realizarlas y eliminarlas de la lista.
Este código podría esquemáticamente escribirse así:
tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
task = tasks.pop()
print(task)
GO TO FULL VERSION