我正在尝试生成数独。我考虑过为此使用数组。这就是我创建数组的方式(忽略这些不是正确的数独数字的事实):
row_array = [[1, 99],[2],[3], [4], [5], [6], [7], [8], [9]]
工作正常。问题出在if
语句上。如果我这样做:
print(row_array[0][1])
或:
r = 1
print(row_array[0][r])
获得“ 99”效果确实很好!但是,如果我在这样的if语句中使用此变量方法:
if y not in row_array[1] and y not in row_array[0][r]:
row_array[1].append(y)
我收到以下错误:
TypeError:类型为'int'的参数不可迭代
我让Sudoku工作了,但是花了很多代码,所以我想设置一个计数器,用它来替换行和列。我知道你们可能已经为数独有了更好的代码,但是我想教自己,并随着时间的推移使代码更好,更短。我不会仅仅通过复制别人的想法或编码方式来学习编码。
答案 0 :(得分:1)
问题在这里:
if y not in row_array[0][r]
in
运算符检查左侧是否按顺序排列或在右侧可迭代。但是type(row_array[0][r])
将返回int
,这是不可迭代的。