[Tutor] The Python way and two dimensional lists
Phil
phillor9 at gmail.com
Tue Dec 7 20:06:51 EST 2021
On 8/12/21 08:47, dn via Tutor wrote:
>
> row, column and a region." A "region" is what has been called a "box"
> earlier in this thread.
To me a box is a 3 x 3 grid of cells.
> When you separate the two ways to look at a Sudoku, life becomes a lot
> easier.self.solution[row][found_col] = set(num)mpleted this project
I pride myself in not being a rigid thinker but I suppose I am, other
wise I would have completed this project by now.
> For this reason, I would use 2D/nested dict[ionarie]s. This has the
> added-advantage that the author may label each column/row, as-desired.
Someone else also suggested the use of a list of dictionaries but I
didn't see the point at the time. However, now that I've used the
counter method from the collections module I can see that a dictionary
might be useful after all.
> The idea here, is to maintain a list of nine lists which represent the
> nine rows of the tableau. The second pile of nine lists represents the
> columns. Yes, when you boil-it-down, the data is repeated - each 'cell'
> appears once in a row list and again in a column list - and when a new
> value is added to the tableau, it must be added in two places. Ouch!
I'm not sure about the idea of two tables, more complications perhaps?
> So, after theorising, it was time to 'have some fun'. To compare the
> 'snake' with a 2D dict solution, I prepared some code and sufficient
> tests which progress from:
>
> An initial tableau:
>
> -------------------------------------
> | | 2 | 7 | | 8 | 9 | 6 | | |
> -------------------------------------
> | | | | | | 1 | 7 | | 2 |
> -------------------------------------
> | 9 | | | | | | | | |
> -------------------------------------
> | | | | | 5 | | | | 7 |
> -------------------------------------
> | 1 | 7 | | | | | | 2 | 6 |
> -------------------------------------
> | 8 | | | | 4 | | | | |
> -------------------------------------
> | | | | | | | | | 4 |
> -------------------------------------
> | 2 | | 8 | 5 | | | | | |
> -------------------------------------
> | | | 1 | 8 | 6 | | 2 | 3 | |
> -------------------------------------
This is a rather easy puzzle to solve, my programme solved it in 3
passes. I'm not skiting, just pointing out that I have achieved something.
Are the several descriptions sufficient to start you off?
Yes, thank you and keep your code safe, I may contact you.
--
Regards,
Phil
More information about the Tutor
mailing list