215 votes

Itérer une liste avec des index en Python

Je jurerais avoir déjà vu la fonction (ou la méthode) qui prend une liste, comme ceci [3, 7, 19] et le transforme en une liste itérable de tuples, comme ceci : [(0,3), (1,7), (2,19)] pour l'utiliser à la place :

for i in range(len(name_of_list)):
    name_of_list[i] = something

mais je n'arrive pas à me souvenir du nom et la recherche sur Google de "liste d'itérations" ne donne rien.

3voto

Sнаđошƒаӽ Points 2814

Si vous disposez de plusieurs listes, vous pouvez effectuer cette combinaison. enumerate y zip :

list1 = [1, 2, 3, 4, 5]
list2 = [10, 20, 30, 40, 50]
list3 = [100, 200, 300, 400, 500]
for i, (l1, l2, l3) in enumerate(zip(list1, list2, list3)):
    print(i, l1, l2, l3)

Sortie :

0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
4 5 50 500

Notez que la parenthèse est nécessaire après i . Sinon, vous obtenez l'erreur : ValueError: need more than 2 values to unpack

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X