Wenn Sie schreiben:
for x1,x2 in iterable:
# ...
das eigentlich bedeutet, dass Sie tun Sequenz in Python Auspacken. Python wertet sie mag:
x1,x2 = key0
Wo key0
den ersten Schlüssel (und natürlich auch andere Tasten). Dies funktioniert, wenn key0
eine iterable ist, die genau zwei Elemente hat. In diesem Fall wird das erste Element x1
und das zweite Element x2
zugewiesen.
Jetzt ist eine Zeichenfolge eine iterable, deren Elemente die Zeichen sind. Ein String 'A1'
hat also zwei Elemente: 'A'
und '1'
. Das bedeutet, dass, wenn Sie schreiben:
key,value = 'A1'
key
'A'
halten und value
wird '1'
halten. Jetzt, wenn Sie key
drucken, wird es so den ersten Wert des Schlüssels drucken.
ein for
auf einem values.items()
Verwendung kein „magischer Ausdruck“: items()
einfach ist eine iterable, dass 2-Tupel enthält, einen Schlüssel und den entsprechenden Wert erzeugt. Da ein Tupel auch iterierbar ist, wobei die Elemente die Elemente des Tupels sind, wird das Tupel in den Schlüssel und den Wert entpackt. Wenn Sie also schreiben: for key,value in values.items()
, erzeugt der .items()
eine Sequenz wie ('A1','123456')
, ('B1',123456)
. Nun, wenn solche Tupel key,value
zugewiesen wird, ist es wie das Schreiben:
key,value = ('A1','123456')
so key
das erste Element des Tupels nehmen ('A1'
) und value
die zweite (123456
).
Weil es versucht, Sequenz Entpacken zu tun. –
Es wurde versucht, "A1" und andere Schlüssel als Tupel auszupacken. Standardmäßig ist das Iterieren eines Wörterbuchs wie das Iterieren seiner Schlüssel. –