1
grid = [[0]*10]*10
으로 초기화 된 중첩 목록 grid
의 값을 변경할 때 이상한 동작이 나타났습니다.중첩 목록에서 단일 값을 변경할 때 여러 값이 변경됨
grid = [[0]*10]*10
grid[0][0] = 1
for l in grid:
print l
출력 :
내가grid = [[0]*10 for x in range(10)]
으로
grid
을 초기화
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
. 예상대로 작동했습니다.
grid = [[0]*10 for x in range(10)]
grid[0][0] = 1
for l in grid:
print l
출력 : 이런 일이 왜
이[1, 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, 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, 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]
사람이 알고 있나요?
도움 주셔서 감사합니다.
예 @Andrew가 맞습니다. grid = [[0] * 10 for range (10)] # 여기서 목록을 만들고 할당하는 것은 여기에 있습니다. # grid # [[0] * 10] 그리드로 –