2016-04-30 5 views
2

Ich bin ein Anfänger in Python und ich fand eine seltsame Art, Variablen zu benennen und konnte überhaupt nicht verstehen.Wie funktioniert das Benennen von Variablen?

Kann mir bitte jemand helfen

x = 1 
n = [1, 1, 3] 
for i in n: 
    y, x = x, i 

ich will diese Linie verstehen y, x = x, i was bedeutet es?

Antwort

5

Es heißt Tupel-Entpacken. Die rechte Seite ist nur ein Tupel; Die Klammern in einem Ausdruck wie (x, i) sind optional, wenn keine Mehrdeutigkeit vorliegt. Die linke Seite ist eine Folge von Namen, die dem entsprechenden Wert auf der rechten Seite zugeordnet sind. Die Aussage ist äquivalent zu

tmp = x, i 
y = tmp[0] 
x = tmp[1] 

Die rechte Seite ist vollständig als Tupel ausgewertet, bevor die Zuweisungen vorgenommen werden, das heißt, Sie Code wie

a, b = b, a 

auf Werte tauschen, ohne dass eine temporäre Variable schreiben .

+0

Ich meinte y ist definiert als x und dann x ist definiert als ich so in der gleichen Schleife x wird der gleiche Wert wie ich? – Joe

+0

Das stimmt. Ich habe das Äquivalent aktualisiert, um die Idee eines Tupels zu betonen, das zuerst erstellt wird. – chepner

+0

danke, aber wenn x = 1 ist innerhalb der Schleife nach für i in n: macht es anders? – Joe

Verwandte Themen