Ich tauche in Python ein und habe eine Frage zu jeder Iteration. Ich bin neu in Python und habe einige Erfahrungen in C #. Ich frage mich also, ob es in Python eine äquivalente Funktion für die Iteration aller Elemente in meiner Sammlung gibt, z
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
oder sowas.
Antworten:
Sicher. Eine for-Schleife.
quelle
for k,v in enumerate(pets):
usw.So was:
Tatsächlich hat Python nur foreach-
for
Stilschleifen.quelle
Es ist auch interessant, dies zu beobachten
Um die Indizes einer Sequenz iterieren, können Sie kombinieren
range()
undlen()
wie folgt dar :Ausgabe
Edit # 1: Alternativer Weg:
Beim Durchlaufen einer Sequenz können der Positionsindex und der entsprechende Wert gleichzeitig mit der
enumerate()
Funktion abgerufen werden.Ausgabe
quelle
Für eine aktualisierte Antwort können Sie
forEach
einfach eine Funktion in Python erstellen :Sie können auch anpassen , dies zu
map
,reduce
,filter
und alle anderen Array - Funktionen aus anderen Sprachen oder Vorrang Sie bringen über wollen würde. Denn Schleifen sind schnell genug, aber die Kesselplatte ist länger alsforEach
oder die anderen Funktionen. Sie können list auch erweitern, um diese Funktionen mit einem lokalen Zeiger auf eine Klasse zu haben, sodass Sie sie auch direkt in Listen aufrufen können.quelle
Während die obigen Antworten gültig sind, ist dies der Ansatz, den ich gerne verwende, wenn Sie über ein Diktat {key: value} iterieren:
Wenn ich also alle Schlüssel und Werte in meinem Wörterbuch stringifizieren möchte, würde ich Folgendes tun:
Dies vermeidet Mutationsprobleme bei der Anwendung dieser Art von Iteration, die meiner Erfahrung nach (manchmal) zu unberechenbarem Verhalten führen können.
quelle
copy
Wörterbuchs, sodass Sie das Wörterbuch während der Iterationfor key, value in Dictionary.copy().items()
Für eine dict können wir eine for - Schleife durchlaufen die Verwendung
index
,key
undvalue
:quelle