Python foreach équivalent
Je plonge dans Python et j'ai une question sur l'itération foreach. Je suis nouveau en Python et j'ai une certaine expérience en C#. Donc, je me demande s'il y a une fonction équivalente en Python pour l'itération sur tous les éléments de ma collection, par exemple
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
Ou quelque chose comme ça.
5 réponses
Comme ceci:
for pet in pets :
print(pet)
En fait, Python seulement a foreach style for
boucles.
C'est aussi intéressant d'observer ceci
Pour itérer sur les indices d'une séquence, vous pouvez combiner range()
et len()
comme suit:
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
Sortie
0 Mary
1 had
2 a
3 little
4 lamb
Modifier#1: autre manière:
Lors d'une boucle à travers une séquence, l'index de position et la valeur correspondante peuvent être récupérés à la même
temps en utilisant la fonction enumerate()
.
for i, v in enumerate(['tic', 'tac', 'toe']):
print(i, v)
Sortie
0 tic
1 tac
2 toe
Bien que les réponses ci-dessus soient valides, si vous itérez sur un dict {key: value} c'est l'approche que j'aime utiliser:
for key, value in Dictionary.items():
print(key, value)
Donc, si je voulais faire quelque chose comme stringify toutes les clés et valeurs dans mon dictionnaire, je ferais ceci:
stringified_dictionary = {}
for key, value in Dictionary.items():
stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary
Cela évite tout problème de mutation lors de l'application de ce type d'itération, ce qui peut provoquer un comportement erratique (parfois) dans mon expérience.
Pour une réponse mise à jour, vous pouvez facilement créer une fonction forEach
en Python:
def forEach(list, function)
for i,v in enumerate(list))
function(v, i, list)
Vous pouvez également l'adapter à map
, reduce
, filter
, et toutes les autres fonctions de tableau d'autres langues ou préséance que vous voudriez apporter. Pour les boucles sont assez rapides, mais la plaque de la chaudière est plus longue que forEach
ou les autres fonctions. Vous pouvez également étendre list pour avoir ces fonctions avec un pointeur local vers une classe afin que vous puissiez les appeler directement sur les listes.