-1
파이썬에서 목록 내의 특정 위치에정수를 할당하려고합니다. 그러나이 값은 모든 여러 위치에 할당됩니다. 분명히 파이썬은 값이 아니라 참조로 값을 할당하고 있습니다. 왜 그런가?파이썬 목록 - 특정 목록 위치에서 값을 변경하면 여러 위치에 잘못 반영됩니다.
matrix = [[[0,0]] * (5) for _ in range(2)]
matrix[1][3][0] = 42
초기 :
[
[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
]
예상 (할당 후) :
[
[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[0, 0], [0, 0], [0, 0], [42, 0], [0, 0]]
]
실제 (할당 후) :
[
[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[42, 0], [42, 0], [42, 0], [42, 0], [42, 0]]
]