Peter Norvig 通过结合确定性逻辑运算和可能解决方案的智能遍历,撰写了一篇描述解决数独难题的程序的文章,即使是最困难的难题.后者是递归完成的; 这是该功能(来源):
def search(values):
"Using depth-first search and propagation, try all possible values."
if values is False:
return False ## Failed earlier
if all( len( values[s]) == 1 for s in squares):
return values ## Solved!
## Chose the unfilled square s with the fewest possibilities
_,s = min( (len( values[s]), s)
for s in squares
if len(values[s]) > 1
)
return some( search( assign( values.copy(), s, d))
for d …Run Code Online (Sandbox Code Playgroud) 我已经看到了一些定义选择字段的例子:
COUNTRIES = (
('fr', _('France')),
('de', _('Germany')),
...
)
Run Code Online (Sandbox Code Playgroud)
(来源:http://code.djangoproject.com/ticket/5446 另见:http://djangosnippets.org/snippets/494/)
领先的下划线是什么意思?为什么元组中的第二个值甚至是括号?