CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Au lieu d'utiliser for i in range(len(names)), modifiez la boucle for pour utiliser i comme variable d'indice et name comme variable d'itération, et utilisez enumerate().
  • 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 appliquant enumerate() à names. Cette fois, faites commencer l'indice de 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