CommencerCommencer gratuitement

Pratique intégrée : enumerate()

Dans cet exercice, vous vous entraînerez à utiliser la fonction intégrée de Python enumerate(). Cette fonction est utile pour obtenir une liste indexée. Supposons par exemple que vous disposiez d'une liste de personnes arrivées à une fête que vous organisez. La liste est classée par ordre d'arrivée (Jerry est le premier arrivé, suivi de Kramer, etc.) :

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

Si vous souhaitez attacher 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')]

Mais ce n'est pas la solution la plus efficace. Voyons comment utiliser enumerate() pour rendre cette opération plus efficace.

Cet exercice fait partie du cours

Écrire du code Python efficace

Afficher le cours

Instructions

  • Au lieu d'utiliser for i in range(len(names)), mettez à jour la boucle for pour utiliser i comme variable d'index et name comme variable d'itérateur et utilisez enumerate().
  • Réécrivez la boucle for précédente en utilisant enumerate() et la compréhension de liste pour créer une nouvelle liste, indexed_names_comp.
  • Créez une autre liste (indexed_names_unpack) en utilisant le caractère étoile (*) pour décompresser l'objet d'énumération créé en utilisant enumerate() sur names. Cette fois, l'indice pour enumerate() commence à 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)
Modifier et exécuter le code