ComenzarEmpieza gratis

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

Ver curso

Instrucciones de ejercicio

  • En lugar de utilizar for i in range(len(names)), actualiza el bucle for para utilizar i como variable índice y name como variable iteradora y utiliza enumerate().
  • 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 de enumerate() en names. Esta vez, comienza el índice para enumerate() 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)
Editar y ejecutar código