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 de ejercicio
- En lugar de utilizar
for i in range(len(names))
, actualiza el bucle for para utilizari
como variable índice yname
como 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
Pruebe este ejercicio completando este 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)