Práctica incorporada: enumerar()
En este ejercicio, practicarás el uso de la función incorporada de Python enumerate(). Esta función es útil para obtener una lista indexada. Por ejemplo, supón que tienes una lista de personas que han llegado a una fiesta que estás organizando. La lista está ordenada por llegada (Jerry fue el primero en llegar, seguido de Kramer, etc.):
names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']
Si quisieras adjuntar un índice que representara el orden de llegada de una persona, podrías utilizar el siguiente bucle for:
indexed_names = []
for i in range(len(names)):
index_name = (i, names[i])
indexed_names.append(index_name)
[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]
Pero no es la solución más eficaz. Exploremos cómo utilizar enumerate() para que esto sea más eficaz.
Este ejercicio forma parte del curso
Escribir código Python eficiente
Instrucciones del ejercicio
- En lugar de utilizar
for i in range(len(names)), actualiza el bucle for para utilizaricomo variable índice ynamecomo variable iteradora y utilizaenumerate(). - Reescribe el bucle for anterior utilizando
enumerate()y la comprensión de listas para crear una nueva lista,indexed_names_comp. - Crea otra lista (
indexed_names_unpack) utilizando el carácter estrella (*) para desempaquetar el objeto enumerar creado a partir del uso deenumerate()ennames. Esta vez, comienza el índice paraenumerate()en uno en lugar de cero.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Rewrite the for loop to use enumerate
indexed_names = []
for ____,_____ in ____(names):
index_name = (i,name)
indexed_names.append(index_name)
print(indexed_names)
# Rewrite the above for loop using list comprehension
indexed_names_comp = [(____,____) for i,name in ____(names)]
print(indexed_names_comp)
# Unpack an enumerate object with a starting index of one
indexed_names_unpack = [____(names, ____)]
print(indexed_names_unpack)