Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python上找到适合数独板行和列的可能数字?_Python - Fatal编程技术网

如何在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))