Чтение через Петра Норвига Решение каждого эссе Sudoku Puzzle, я столкнулся с несколькими идиомами Python, которых я никогда раньше не видел.
Я знаю, что функция может возвращать кортеж/список значений, и в этом случае вы можете назначить несколько переменных для результатов, таких как
def f():
return 1,2
a, b = f()
Но в чем смысл каждого из следующих?
d2, = values[s] ## values[s] is a string and at this point len(values[s]) is 1
Если len(values[s]) == 1
, то как этот оператор отличается от d2 = values[s]
?
Другой вопрос об использовании подчеркивания в присваивании здесь:
_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)
Подчеркивает ли значение подчеркивания в основном отказ от первого значения, возвращаемого в списке?