idetyp:
Ich wurde heute durch den folgenden Code überrascht:
testcases = [([1, 1, 1], 2, 2)]
for a, b, c in testcases:
print(a, b, c)
er druckt:
[1, 1, 1] 2 2
Ich erwartete einen Fehler und dachte , dass wir eine zweite Schleife bräuchten , um Tupeln Elemente zu erhalten. Könnte enyone mir erklären , wie es funktioniert? Ich verstehe nicht , wie a
, b
und c
zugeordnet sind. Ich habe Python 3.6. Prost!
quamrana;
Schauen wir uns an, was Sie haben:
testcases = [([1, 1, 1], 2, 2)]
Dies ist eine Liste. Von Größe ein. So testcases[0]
ist das einzige Element ist.
So diesen Code:
for a, b, c in testcases:
pass
ist eine Schleife einer Länge. Also jedes Mal durch die Schleife (die nur die einmal ist), erhalten Sie das Element: ([1, 1, 1], 2, 2)
die eine ist tuple
. Die Größe drei.
So Auspacken , dass: a,b,c = testcases[0]
gibt:
a == [1, 1, 1]
b == 2
c == 2
das ist, was Sie gedruckt zu sehen.