CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • 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 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 de enumerate() sur names. Cette fois-ci, veuillez commencer l'index pour enumerate() à 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