Ich habe Python gelernt, komme aber aus einem Hintergrund von Java. In Java können Sie den Wert einstellen, den der Iterator bei jedem Durchlauf durch die Schleife erhöht oder verringert. So können Sie beispielsweise sagen for(int i = 0; i < 10; i = i + 2)
so dass der Iterator jedes Mal um zwei erhöht wird.
Von dem, was ich bisher in Python-Tutorials gesehen habe,Die for-Schleife ändert sich nicht und durchläuft jede ganze Zahl von einem Anfangswert bis zu einem Endwert und steigt jedes Mal um eins an. Gibt es eine Möglichkeit, die Python for-Schleife zu manipulieren, um Ihren eigenen Wert für die Erhöhung / Verringerung des Iterators festzulegen?
Antworten:
3 für die Antwort № 1Sie können Folgendes verwenden, um in Python dasselbe zu erreichen:
>>> range(1, 10, 2)
[1, 3, 5, 7, 9]
Ihr Code wird also sein
for i in range(0, 10, 2):
# do_stuff()
1 für die Antwort № 2
Wenn Sie eine for
Schleife zum Durchlaufen eines Index in Python, normalerweise konstruieren Sie eine range
Objekt.
for i in range(10):
print(i)
# 0, 1, ..., 9
range
hat einen Konstruktor, der drei Argumente akzeptiert, start, stop und step.
for i in range(0, 10, 2):
print(i)
# 0, 2, ..., 8
Normalerweise iteriert man nur die Elemente in Objekten und nicht Indizes.
lst = [0, 1, 2, 3]
for element in lst:
print(element)
# 0, 1, 2, 3
Wenn Ihr Objekt jedoch Slicing unterstützt (wie es Listen tun), ist es einfach, jedes andere Mitglied zu erhalten.
lst = [0, 1, 2, 3]
for element in lst[::2]:
print(element)
# 0, 2
Google "Listenaufteilung in Python", wenn Sie weitere Informationen zu dieser Syntax wünschen.