blackbird hat geschrieben:denn löschen kann man wärend der Iteration sowieso keine Items.
Das ist ja genau der Punkt:
Code: Alles auswählen
d = { 1:"Nummer Eins", "zwei":"1-3", "sechs":6 }
for k,v in d.items():
print k,v
if k == "zwei":
del(d[k])
print "-----------------------------"
print d
print "-----------------------------"
for k,v in d.iteritems():
print k,v
if k == "sechs":
del(d[k])
Ausgaben:
1 Nummer Eins
sechs 6
zwei 1-3
-----------------------------
{1: 'Nummer Eins', 'sechs': 6}
-----------------------------
1 Nummer Eins
sechs 6
Traceback (most recent call last):
File "test.py", line 15, in ?
for k,v in d.iteritems():
RuntimeError: dictionary changed size during iteration
Mit items() kann ich elemente aus dem Dict löschen, weil die Schleife ja mit einer Kopie gemacht wird, bei iteritems() klappt das natürlich nicht.