Я пишу сценарий для эффективного решения головоломки sudoku, но есть одна часть моего кода, которая, по моему мнению, крайне уродлива и хочу оптимизировать.Python - Streamlining sudoku solver code
def square(cell):
rows='ABCDEFGHI'
cols='123456789'
cell_row = cell[0][0]
cell_col = cell[0][1]
if cell_row in rows[0:3]:
x = 'A'
if cell_row in rows[3:6]:
x = 'B'
if cell_row in rows[6:9]:
x = 'C'
if cell_col in cols[0:3]:
y = 'a'
if cell_col in cols[3:6]:
y = 'b'
if cell_col in cols[6:9]:
y = 'c'
return (['Aa','Ab','Ac','Ba','Bb','Bc','Ca','Cb','Cc'].index(x+y))+1
Учитывая, что судоку плата состоит из 9 3x3 квадратов цель этой функции взять координаты ячейки на доске и возвращает количество 3х3 площади, к которой принадлежит ячейка (где квадрат в верхнем левом углу - номер 1, а нижний правый - номер 9). Входная ячейка находится в форме ['A5', 6], где A обозначает строку, 5 - столбец и 6 - значение ячейки.
Код, который у меня есть, но есть более эффективный или презентабельный способ сделать это. Я был бы признателен за любые предложения.
Это замечательно, презентабельно! – ggordon