Bedeutung von Kommas und Unterstrichen mit Python-Zuweisungsoperator?
Lesung durch Peter Norvig ist Lösen Jedes Sudoku-Puzzle-essayich habe festgestellt ein paar Python idioms, die ich nie zuvor gesehen habe.
Ich bin mir bewusst, dass eine Funktion zurückgeben kann Tupel/Liste der Werte, die Sie zuweisen können mehrere Variablen auf die Ergebnisse, wie
def f():
return 1,2
a, b = f()
Aber was ist die Bedeutung jedes der folgenden?
d2, = values[s] ## values[s] is a string and at this point len(values[s]) is 1
Wenn len(values[s]) == 1
ist, dann wie ist diese Aussage anders als d2 = values[s]
?
Andere Frage über die Verwendung eines Unterstriches in der Zuordnung hier:
_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)
Nicht den Unterstrich den Effekt haben, im Grunde verwerfen Sie den ersten Wert in der Liste zurückgegeben?
InformationsquelleAutor der Frage matt b | 2009-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
d2, = values[s]
ist wiea,b=f()
außer Auspacken 1 element-Tupel.a
ist Tupelb
ist eine ganze Zahl.InformationsquelleAutor der Antwort eduffy
_
ist wie jede andere variable Namen, aber normalerweise bedeutet es, dass "I don' T care über diese variable".Die zweite Frage: ist es "Wert " Auspacken". Wenn eine Funktion gibt ein Tupel ist, können Sie packen Sie Ihre Elemente.
InformationsquelleAutor der Antwort jldupont
_ In der Python-shell bezieht sich auch auf den Wert der letzten operation. Daher
Den Kommata beziehen sich auf Tupel-Auspacken. Was passiert, ist, dass der Rückgabewert ist ein Tupel, und so ist es ausgepackt, in die Variablen durch Komma getrennt in der Reihenfolge der Tupel - Elemente.
InformationsquelleAutor der Antwort blwy10
Können Sie das nachfolgende Komma in einem Tupel wie diese:
InformationsquelleAutor der Antwort Rose Perrone