我正在试着做一个数独解算器,目前我正在做一个检查它是否被解决的部分,但我有点卡住了。网格是由81个数字(9*9)组成的,然后我有字典将它们分成行、列和框,例如:
self.rows = {'toptop':self.board[0:9],'topmid':self.board[9:18],'topbottom':self.board[18:27],
'midtop':self.board[27:36],'midmid':self.board[36:45],'midbottom':self.board[45:54]
哦, 我要做的是检查每一行、每一列或每一个框中是否有数字1-9。我做过一次又一次的实验
self.winning = [1,2,3,4,5,6,7,8,9]
[x for x in self.rows.values() if (x == y for y in self.winning)]
但它只返回了分组到行中的每个值。我也尝试了不同的方法,有些方法会返回数字为1-9的列表,但它们经常有重复项;它们永远不会以1-9的形式显示列表。我怎样才能做到这一点?谢谢
很难从你发布的小代码中分辨出你的问题到底在哪里,或者为了让它正常工作应该修改什么,但是根据你的问题标题和你提供的信息(你正在解数独),我可以说下面的内容将对你有所帮助。你知道吗
为了比较一个列表中的项目是否在另一个列表中,我们必须确定范围。你知道吗
假设我们有两个列表,A和B
这是一个生成器,您可以在长度相等的列表上使用它来检查哪些索引是真/假的
我不认为可以将列表与
==
进行比较,但类似的方法应该可以:相关问题 更多 >
编程相关推荐