Глядя на мой код ... почему мой первый вложенный список (grid1) не совпадает со вторым вложенным списком (grid2)? Чем отличается использование? Для игры я хочу, чтобы сетка 4 на 6 с каждым элементом, имеющим значение 'x', кроме сетки [0] [0], была назначена на 'O'. Это работает в grid2 , но не в grid1 . Почему ссылки и список отличаются, поскольку они выглядят одинаково?
#setup grid1 (4x6 2D nested list) populating x's in all positions
grid1 =[["x"]*4]*6]
grid1[0][0]="O" #assign row 1, column 1 'O'
print(grid1)
выводит
[['O', 'x', 'x', 'x'], ['O', 'x', 'x', 'x'], ['O', 'x', 'x', 'x'], ['O', 'x', 'x', 'x'], ['O', 'x', 'x', 'x'], ['O', 'x', 'x', 'x']]
все же эта реализация ...
grid2 = []
for row in range(0,6):
grid2.append([])
for column in range(0,4):
grid2[row].append("x")
grid2[0][0]="O"
print(grid2)
выводит правильно
[['O', 'x', 'x', 'x'], ['x', 'x', 'x', 'x'], ['x', 'x', 'x', 'x'], ['x', 'x', 'x', 'x'], ['x', 'x', 'x', 'x'], ['x', 'x', 'x', 'x']]
В чем разница и чем они отличаются?