CommencerCommencez gratuitement

Pratique intégrée : enumerate()

Dans cet exercice, vous allez vous entraîner à utiliser la fonction intégrée de Python enumerate(). Cette fonction est utile pour obtenir une liste indexée. Par exemple, supposons que vous disposiez d'une liste des personnes qui sont arrivées à une réception que vous organisez. La liste est classée par ordre d'arrivée (Jerry est arrivé en premier, suivi de Kramer, etc.) :

names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']

Si vous souhaitez ajouter un index représentant l'ordre d'arrivée d'une personne, vous pouvez utiliser la boucle « for » suivante :

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')]

Cependant, ce n'est pas la solution la plus efficace. Explorons comment utiliser enumerate() pour rendre cela plus efficace.

Cet exercice fait partie du cours

<cours>Écrire du code Python efficace</cours>
Voir le cours

Instructions de l’exercice

  • Au lieu d'utiliser for i in range(len(names)), veuillez mettre à jour la boucle for afin d'utiliser i comme variable d'index et name comme variable d'itérateur, et utiliser enumerate().
  • Veuillez réécrire la boucle for précédente en utilisant enumerate() et la compréhension de liste afin de créer une nouvelle liste, indexed_names_comp.
  • Veuillez créer une autre liste (indexed_names_unpack) en utilisant le caractère étoile (*) pour décompresser l'objet énuméré créé à partir de l'utilisation de enumerate() sur names. Cette fois-ci, commencez l'index pour enumerate() à un au lieu de zéro.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code