Je plonge dans Python et j'ai une question sur chaque itération. Je suis nouveau sur Python et j'ai une certaine expérience en C #. Je me demande donc s'il existe une fonction équivalente en Python pour une 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.
Réponses:
Sûr. Une boucle for.
for f in pets: print f
la source
for k,v in enumerate(pets):
etc.Comme ça:
for pet in pets : print(pet)
En fait, Python n'a que des
for
boucles de style foreach .la source
Il est également intéressant d'observer cela
Pour parcourir les indices d'une séquence, vous pouvez combiner
range()
etlen()
comme suit:a = ['Mary', 'had', 'a', 'little', 'lamb'] for i in range(len(a)): print(i, a[i])
production
0 Mary 1 had 2 a 3 little 4 lamb
Edit # 1: Autre manière:
Lors du bouclage d'une séquence, l'index de position et la valeur correspondante peuvent être récupérés en même temps à l'aide de la
enumerate()
fonction.for i, v in enumerate(['tic', 'tac', 'toe']): print(i, v)
production
0 tic 1 tac 2 toe
la source
Pour une réponse mise à jour, vous pouvez
forEach
facilement créer une fonction en Python:def forEach(list, function): for i, v in enumerate(list): function(v, i, list)
Vous pouvez également adapter cela
map
,reduce
,filter
et toutes les autres fonctions de tableau d'autres langues ou la priorité que vous voudriez faire plus. Les boucles For sont assez rapides, mais la plaque de la chaudière est plus longue queforEach
les autres fonctions. Vous pouvez également étendre list pour avoir ces fonctions avec un pointeur local vers une classe afin de pouvoir les appeler directement sur les listes.la source
Bien que les réponses ci-dessus soient valides, si vous itérez sur un dict {clé: valeur}, c'est l'approche que j'aime utiliser:
for key, value in Dictionary.items(): print(key, value)
Par conséquent, si je voulais faire quelque chose comme stringify toutes les clés et valeurs de 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 entraîner un comportement erratique (parfois) selon mon expérience.
la source
copy
du dictionnaire, afin que vous puissiez manipuler le dictionnaire pendant l'itération (bien que votre copie soit de toutes les clés et valeurs avant toute modification) - commefor key, value in Dictionary.copy().items()
Pour un dict, nous pouvons utiliser une boucle for pour parcourir le
index
,key
etvalue
:dictionary = {'a': 0, 'z': 25} for index, (key, value) in enumerate(dictionary.items()): ## Code here ##
la source
Cela a fonctionné pour moi:
def smallest_missing_positive_integer(A): A.sort() N = len(A) now = A[0] for i in range(1, N, 1): next = A[i] #check if there is no gap between 2 numbers and if positive # "now + 1" is the "gap" if (next > now + 1): if now + 1 > 0: return now + 1 #return the gap now = next return max(1, A[N-1] + 1) #if there is no positive number returns 1, otherwise the end of A+1
la source