Znaczenie używania przecinków i podkreśleń z operatorem przypisania Pythona?

Czytanie przez Petera NorvigaRozwiązywanie każdego eseju w Sudoku, Spotkałem kilka idiomów Pythona, których nigdy wcześniej nie widziałem.

Wiem, że funkcja może zwrócić krotkę / listę wartości, w którym to przypadku można przypisać wiele zmiennych do wyników, takich jak

def f():
    return 1,2

a, b = f()

Ale jakie jest znaczenie każdego z poniższych?

d2, = values[s]  ## values[s] is a string and at this point len(values[s]) is 1

Jeślilen(values[s]) == 1, jak to jest inaczej niżd2 = values[s]?

Kolejne pytanie o użycie podkreślenia w przypisaniu tutaj:

_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)

Czy podkreślenie powoduje odrzucenie pierwszej wartości zwróconej na liście?

questionAnswers(4)

yourAnswerToTheQuestion