Pratique intégrée : énumérer()
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
Écrire du code Python efficace
Instructions
- Au lieu d'utiliser
for i in range(len(names))
, veuillez mettre à jour la boucle for afin d'utiliseri
comme variable d'index etname
comme variable d'itérateur, et utiliserenumerate()
. - Veuillez réécrire la boucle for précédente en utilisant l'itération par itérage (
enumerate()
) et la compréhension de liste (list comprehension) 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 deenumerate()
surnames
. Cette fois-ci, veuillez commencer l'index pourenumerate()
à un au lieu de zéro.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)