在数独求解器算法中遇到类型()的问题

时间:2014-01-27 20:04:38

标签: algorithm python-3.x sudoku

我目前正在编写一个很大的数独求解器算法,我遇到了一个奇怪的问题......在我的代码深处,我有这个'if'语句来检查给定变量的类型。如果它是一个列表,我希望它输入if语句。

当我的代码如下:

if type(cell) == "list":
    # some code...

它不会进入声明(我有一个print()让我确定... 但有了这个:

if type(cell) == type(possibilities):
    # some code...

它确实输入了代码......“可能性”是程序中早先分配的另一个变量,它始终是一个列表。 我在'if-statement'之前也有print()语句告诉我当前的单元格类型,用:

print(type(cell))

和一些打印的,如预期的那样,“< class”列表“>”

那么问题是什么?如果您认为需要,我可以在这里添加更多代码。我只是觉得最好不要因为它真的很大。

2 个答案:

答案 0 :(得分:2)

您将其修复为

if type(cell) == list:

甚至更好

if isinstance( cell, list ):

后者即使单元格属于某种派生类型也能正常工作。

答案 1 :(得分:1)

if type(cell) == list:

注意,列表周围没有引号。 list是一个引用列表类型的内置变量。