如何在python上找到适合数独板行和列的可能数字?
我必须找到一个行和列索引都给定的单元格中可能适合的数字 委员会成员如下:如何在python上找到适合数独板行和列的可能数字?,python,Python,我必须找到一个行和列索引都给定的单元格中可能适合的数字 委员会成员如下: board = [['4', '.', '7', '.', '.', '8', '9', '6', '2'], ['.', '.', '1', '.', '2', '.', '.', '.', '.'], ['5', '.', '.', '7', '.', '.', '.', '.', '.'], ['7', '5', '.', '.', '.', '.', '.',
board = [['4', '.', '7', '.', '.', '8', '9', '6', '2'],
['.', '.', '1', '.', '2', '.', '.', '.', '.'],
['5', '.', '.', '7', '.', '.', '.', '.', '.'],
['7', '5', '.', '.', '.', '.', '.', '.', '4'],
['.', '.', '.', '.', '4', '.', '.', '.', '.'],
['6', '.', '.', '.', '.', '.', '.', '9', '8'],
['.', '.', '.', '.', '.', '1', '.', '.', '6'],
['.', '.', '.', '.', '5', '.', '8', '.', '.'],
['1', '2', '9', '4', '.', '.', '3', '.', '5']
]
现在,它应该得到可能的数字,这些数字适合于一行和coulmn
例如:
def get_possible_numbers(board,row,col)
get_possible_numbers(board,0,0)
应返回以下内容:
['4']
这可能不是最短的解决方案,但它是不言自明的。您应该先查看每个3x3网格,然后从中计算出来,它似乎不适合获取可能的数字(board,3,3)实际上是其零基索引,因此(3,3)将被读取为第4行第4列,因此现在如果您检查,则输出是
[1,2,3,6,8,9]
,因为在相应的行和列中,我们有[7,5,4]
,这些都被排除在输出中,这不是您所期望的吗?为了保证安全,这里的第四行是:['7','5',',',','4']
ya但说出以下可能的数字(board,3,3)时出现了一些错误回溯(最近一次调用):文件“C:\Program Files(x86)\Wing IDE 101 5.1\src\debug\tserver\u sandbox.py”,第1行,在外部解释器文件“C:\Program Files(x86)\Wing IDE 101 5.1\src\debug\tserver\u sandbox.py”下内部用于调试沙盒,第22行,在get_Available_numbers builtins.AttributeError:“range”对象没有属性“remove”查看新的属性是否有效?顺便说一句,以前的版本在我的机器上运行良好。它还不起作用..它适用于get_Available_numbers(board,0,0)等数字
board = [['4', '.', '7', '.', '.', '8', '9', '6', '2'],
['.', '.', '1', '.', '2', '.', '.', '.', '.'],
['5', '.', '.', '7', '.', '.', '.', '.', '.'],
['7', '5', '.', '.', '.', '.', '.', '.', '4'],
['.', '.', '.', '.', '4', '.', '.', '.', '.'],
['6', '.', '.', '.', '.', '.', '.', '9', '8'],
['.', '.', '.', '.', '.', '1', '.', '.', '6'],
['.', '.', '.', '.', '5', '.', '8', '.', '.'],
['1', '2', '9', '4', '.', '.', '3', '.', '5']
]
def get_possible_numbers(board,row,col):
possible_numbers = [1, 2, 3, 4, 5, 6, 7 , 8, 9]
if board[row][col] != ".":
return [board[row][col]]
else:
for i in range(9):
if board[row][i]!=".":
if int(board[row][i]) in possible_numbers:
possible_numbers.remove(int(board[row][i]))
if board[i][col]!=".":
if int(board[i][col]) in possible_numbers:
possible_numbers.remove(int(board[i][col]))
return possible_numbers
print (get_possible_numbers(board, 3, 3))