CodeGym /Cursos /Python SELF ES /Bucles por lista

Bucles por lista

Python SELF ES
Nivel 7 , Lección 6
Disponible

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)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION