Я пытаюсь сделать решателя Судоку, и на данный момент я делаю часть, которая проверяет, была ли она решена, но я застрял. Сетка изготовлена из списка 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. Я экспериментировал abit и попробовал
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] (http://docs.python.org/library/sets.html). – hd1
Спойлер: после того, как вы закончили свой решатель, google для «Norvig sudoku» – georg