リスト内のリスト内の要素を置き換えるのが難しいです。 私のコードは次のとおりです。リスト内のリスト内の要素(リストのリスト)を置き換える方法は?
board_size = 2
number_of_squares_on_board = board_size * board_size
computers_places = []
while len(computers_places) < number_of_squares_on_board:
placing = random.randint(0, number_of_squares_on_board-1)
if placing not in computers_places:
computers_places.append(placing)
row = int(placing/board_size)
column = int(placing % board_size)
# print(computers_places)
print("\nplacing: ", placing)
print("col: ", column)
print("row: ", row)
column_list = board[column]
column_list[row] = "[X]"
print(board[column][row])
print(board)
print(computers_places)
次のように出力されている:
placing: 1
col: 1
row: 0
[X]
[['[X]', '[ ]'], ['[X]', '[ ]']]
>>>> [['[ ]', '[ ]'], ['[X]', '[ ]']] <<<< This is what I expect to see
[1]
placing: 0
col: 0
row: 0
[X]
[['[X]', '[ ]'], ['[X]', '[ ]']]
>>>> [['[X]', '[ ]'], ['[X]', '[ ]']] <<<< This is what I expect to see
[1, 0]
placing: 3
col: 1
row: 1
[X]
[['[X]', '[X]'], ['[X]', '[X]']]
>>>> [['[X]', '[ ]'], ['[X]', '[X]']] <<<< This is what I expect to see
[1, 0, 3]
placing: 2
col: 0
row: 1
[X]
[['[X]', '[X]'], ['[X]', '[X]']]
>>>> [['[X]', '[X]'], ['[X]', '[X]']] <<<< This is what I expect to see
[1, 0, 3, 2]
私は上記の出力で「>>>>」で始まる行を見ることを期待するものを示しているが。
Q:私のコード内で、何が間違っていますか?
さらに読書のために、この種のエラーは、_The Python標準Library_、[4.6.1に記載されています。共通シーケンス操作](https://docs.python.org/3/library/stdtypes.html#typesseq-common)、注2、 's * n'スタイルのシーケンス乗算について:"シーケンス内のアイテム ' sはコピーされず、複数回参照されます。これはしばしば、新しいPythonプログラマに悩まされます... " –
リストの初期化が間違っていました。 – 3kstc