Back to Freecodecamp

Step 32

curriculum/challenges/english/blocks/learn-classes-and-objects-by-building-a-sudoku-solver/6606c3fd5634684d48a7887b.md

latest1.6 KB
Original Source

--description--

The generator expression you just wrote in the previous step generates a list of boolean values representing whether the condition self.board[row][col] != num is True or False for each element in the specified column across all rows.

Pass that generator expression to the all() function to check if all the elements in the column are different from num and return the result.

--hints--

You should pass the generator expression as the argument to an all() call and return the result.

js
({ test: () => assert(runPython(`_Node(_code).find_class("Board").find_function("valid_in_col").find_body().is_equivalent("return all(self.board[row][col] != num for row in range(9))")`)) })

--seed--

--seed-contents--

py
class Board:
    def __init__(self, board):
        self.board = board

    def find_empty_cell(self):
        for row, contents in enumerate(self.board):
            try:
                col = contents.index(0)
                return row, col
            except ValueError:
                pass
        return None

    def valid_in_row(self, row, num):
        return num not in self.board[row]
--fcc-editable-region--
    def valid_in_col(self, col, num):
        (self.board[row][col] != num for row in range(9))
--fcc-editable-region--
puzzle = [
  [0, 0, 2, 0, 0, 8, 0, 0, 0],
  [0, 0, 0, 0, 0, 3, 7, 6, 2],
  [4, 3, 0, 0, 0, 0, 8, 0, 0],
  [0, 5, 0, 0, 3, 0, 0, 9, 0],
  [0, 4, 0, 0, 0, 0, 0, 2, 6],
  [0, 0, 0, 4, 6, 7, 0, 0, 0],
  [0, 8, 6, 7, 0, 4, 0, 0, 0],
  [0, 0, 0, 5, 1, 9, 0, 0, 8],
  [1, 7, 0, 0, 0, 6, 0, 0, 5]
]

gameboard = Board(puzzle)