数独ソルバーを作ろうと思っていて、今は解けたかどうかをチェックする部分を作っているのですが、ちょっと行き詰ってしまいました。グリッドは 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 のみのリストを表示することはありません。どうすればこれを達成できますか?ありがとう