Прочитав Питера Норвига, решающего каждое эссе головоломки Судоку , я столкнулся с несколькими идиомами 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)
Подчеркивает ли это эффект, в основном, отбрасывая первое значение, возвращенное в списке?