我在这里看了几个类似的问题,但没有一个解决我的问题,此外,我不确定我的问题是什么。
无论如何,我试图在python中生成一个包含9个列表的列表,每个列表有9个元素。因为这个列表是一个数独生成器的列表需要符合数独游戏的规则。
这就是我想做的:
def generateBord (mtx) :
while (len(mtx) < 9) and (len(mtx) != 9):
newrow = generateRow(mtx)
mtx.append(newrow)
return mtx
def generateRow (mtx):
counter = 0
row = []
while counter < 9:
num = random.randint(1,9)
idx = len(row)
if (not(num in row)):
for x in mtx:
if (num != x[idx]):
row.append(num)
counter += 1
if (len(row) == 9):
return row
当我试图运行代码时,它永远不会终止,所以我认为问题是某个地方的无限循环。通过反复试验,我把问题缩小到这一点:
for x in mtx:
if (num != x[idx]):
row.append(num)
counter += 1
不过,我不太清楚到底是什么问题。当调用generateBord(mtx)函数时,我给出它
mtx = []
作为论据。
我希望这不是太模糊。这里到底有什么问题,我该怎么解决?或者我的方法根本不可行?