Peter Norvig のSolving Every 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)
アンダースコアには、リストで返された最初の値を基本的に破棄する効果がありますか?