Я кодировал решение Sudoku и столкнулся с проблемой при преобразовании строки в подходящую доску судоку.Как скопировать содержимое переменной?
Пример ввода «2.3.8 .... 8..7 ........... 1 ... 6.5.7 ... 4 ...... 3. ... 1 ............ 82.5 .... 6 ... 1 ....... " , который сообщает пользователю, какие цифры должны входить в квадрат на доске судоку , «.» или «0» означает пробел, который я заполняю пятно в списке списком [1,2, ..., 8,9]. Это делается с помощью функции . Это делается правильно при первом вызове функции, но для второго и третьего времен это делается неправильно (похоже, что новая плата хранит некоторую информацию из предыдущей).
В этом примере кодирования вторая функция печати печатается неправильно, между первыми двумя 8-ми есть 6 в списке, который я печатаю, который не должен быть там, и я полагаю, что он исходит из предыдущего вызова преобразования на "easy_board".
Пожалуйста, смотрите. Благодарю.
print "Welcome to 9X9 Sudoku in Python"
SIZE = 81
LENGTH = 9
empty_board = [[i for i in xrange(1, LENGTH + 1)] for j in xrange(0, SIZE)]
def transform(input):
if len(input) != SIZE:
print "Input length [%d] is not of the correct size [%d]." % len(input), SIZE
return
board = empty_board
for i in xrange(SIZE):
if input[i] != '0' and input[i] != '.':
board[i] = [int(input[i])]
return board
easy_board = "003020600900305001001806400008102900700000008006708200002609500800203009005010300"
medium_board = "2.3.8....8..7...........1...6.5.7...4......3....1............82.5....6...1......."
hard_board = ".6.5.4.3.1...9...8.........9...5...6.4.6.2.7.7...4...5.........4...8...1.5.2.3.4."
print "\ndoing ez board"
our_board = transform(easy_board)
print our_board
print "\ndoing medium board"
our_board = transform(medium_board)
print our_board
print "\ndoing hard board"
our_board = transform(hard_board)
print our_board
1: «В python большинство вещей передаются по ссылке»: независимо от того, где вы попадаете на соответствующую метку для объектной модели Python (если мне нужно было выбрать фразу, это может быть «передать по эталонному значению»,), говоря «большинство вещей», кажется, что иногда Python ведет себя так, а иногда и в другом. Но Python передает объекты одинаково, каждый раз. Я бы просто разделил фразу «In python, большинство вещей - это перекрестная ссылка». 2: списки, а не массивы. :-) – DSM