gibt es in Python die Möglichkeit den Schleifenzähler zu ändern.
Das
Code: Alles auswählen
for i in range(10):
if i == 5:
i -= 1
print i
Code: Alles auswählen
0
1
2
3
4
4
6
7
8
9
Hat jemand eine Idee?
Code: Alles auswählen
for i in range(10):
if i == 5:
i -= 1
print i
Code: Alles auswählen
0
1
2
3
4
4
6
7
8
9
Nicht in so, wie du es versuchst. Du könntest, wenn du wirklich das Zählverhalten ändern möchtest, eine While-schleife nutzen:gibt es in Python die Möglichkeit den Schleifenzähler zu ändern.
Code: Alles auswählen
i = 0
while i < 10:
# hier dein code
Code: Alles auswählen
for i in range(5) + [5] * 5:
print i
Code: Alles auswählen
for i in range(10):
print min(i, 5)
Ok, wenn der Wissensdurst dich treibt, versuche ich mal eine Erklärung:lunas hat geschrieben:Natürlich lässt sich das Problem auch mit einer While-Schleife lösen... Aus Interesse wüsste ich aber doch gerne, ob sich der Zähler manipulieren lässt.
Code: Alles auswählen
for i in myIterator:
print i
if i > 5: myIterator.decrease()
Code: Alles auswählen
def gen(iterator):
iterator = iter(iterator)
l = None
while True:
if l is not None:
while l is not None:
o = l
l = (yield o) # other senders
l = (yield o) # for the for loop
else:
l = (yield iterator.next())
i = 0
gr = gen(range(10))
for x in gr:
print x
if i%2 == 0:
gr.send(10)
i += 1