我正在尝试制作一个Sudoku解算器,并且此刻我正在制作检查它是否已解决的部分,但我已经升级了卡住。网格是由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显示列表。我怎么能做到这一点?由于
看起来你需要看看[python sets](http://docs.python.org/library/sets.html)。 – hd1 2013-04-07 09:06:32
Spoiler:当你准备好你的求解器之后,Google for“Norvig sudoku” – georg 2013-04-07 09:24:36