1
我想从this网站了解解决Python中的Sudoku问题。我无法理解“搜索”功能,特别是“搜索”中“某些”功能的应用。For循环作为python中函数的输入参数
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
n,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 in values[s])
def some(seq):
"Return some element of seq that is true."
for e in seq:
if e: return e
return False
values
这是search
的输入是一个字典(键:该方可能值的字符串:每个正方形,值的名称)。在search
我们试图找到一个正方形(一个正方形是一个在Sudoku中的一个数字的占位符),它具有最少的可能值填充。然后,为每个值调用assign
函数。 assign
的输出可以是false
或者可以是新的字典values
。我想知道这里的“一些”功能的目的是什么?