Pratique avec les fonctions intégrées : enumerate()
Dans cet exercice, vous allez pratiquer l'utilisation de la fonction intégrée de Python enumerate(). Cette fonction est utile pour obtenir une liste indexée. Par exemple, supposons que vous ayez une liste des personnes arrivées à une fête que vous organisez. La liste est ordonnée par ordre d'arrivée (Jerry est arrivé en premier, suivi de Kramer, etc.) :
names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']
Si vous vouliez associer un indice représentant l'ordre d'arrivée d'une personne, vous pourriez 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')]
Mais ce n'est pas la solution la plus efficace. Voyons comment utiliser enumerate() pour rendre cela plus efficace.
Cette activité fait partie du cours
Rédiger du code Python efficace
Instructions de l’exercice
- Au lieu d'utiliser
for i in range(len(names)), modifiez la boucle for pour utilisericomme variable d'indice etnamecomme variable d'itération, et utilisezenumerate(). - Réécrivez la boucle for précédente en utilisant
enumerate()et une compréhension de liste pour créer une nouvelle liste,indexed_names_comp. - Créez une autre liste (
indexed_names_unpack) en utilisant l'astérisque (*) pour décompresser l'objet enumerate obtenu en appliquantenumerate()ànames. Cette fois, faites commencer l'indice deenumerate()à 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)