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

Schreibe einen Kommentar