Iterieren über veränderbare Objekte sind veränderbare während ausgeführt werden:Kann ich einen veränderbaren Bereich erstellen?
a = [11, 12, 13]
for i in a:
if i == 12:
a.append(20)
print(i)
Ergebnisse mit
11
12
13
20
Und a
ist [11, 12, 13, 20]
Aber wenn ich range
es verwenden, ist nicht wandelbar
a = [11, 12, 13]
for i in range(len(a)):
if i == 1:
a.append(20)
print(a[i])
Ergebnisse mit
11
12
13
während a
noch [11, 12, 13, 20]
danach.
Gibt es eine Möglichkeit, ein myrange
Objekt zu erstellen, das auf die gleiche Weise funktioniert wie der Bereich, aber während der Ausführung veränderbar ist?
Sie haben keinen Generator in diesem Code. Sind Sie sicher, dass Sie verstehen, was die Code-Snippets bewirken? – user2357112
Seien Sie gewarnt: Dieser erste Code kann Kopfschmerzen verursachen, wenn der Vergleich und der Anhang den gleichen Wert haben. Du bekommst keine Warnung, aber du willst keine Liste mutieren, die du jemals wiederholst ... –
@ user2357112, ich versuche, mir nichts sicher zu sein :-). Aber in diesem Fall glaube ich, ich habe gerade den Begriff "Generator" missbraucht, den ich jetzt korrigiert und aus der Frage eliminiert habe. – Aguy