우리가 원했던 멋진 격자형 데이터가 생성된 것 같습니다. 이제 격자를 채워 봅시다.
>>> grid[1][0] = Color.RED >>> grid[3][2] = Color.BLUE >>> grid[3][1] = Color.GREEN >>> grid[4][1:4] = [Color.RED] * 3 >>> pprint(grid) [[<C.RED: 2>, <C.RED: 2>, <C.RED: 2>, <C.RED: 2>], [<C.RED: 2>, <C.RED: 2>, <C.RED: 2>, <C.RED: 2>], [<C.RED: 2>, <C.RED: 2>, <C.RED: 2>, <C.RED: 2>], [<C.RED: 2>, <C.RED: 2>, <C.RED: 2>, <C.RED: 2>], [<C.RED: 2>, <C.RED: 2>, <C.RED: 2>, <C.RED: 2>]] >>> pprint([id(sublist) for sublist in grid]) [139768215997440, 139768215997440, 139768215997440, 139768215997440, 139768215997440]
실제로는 격자형 데이터를 생성한 것이 아니라, 동일한 객체5에 대한 5개의 참조가 생성되어 버렸습니다. 문제를 알고 있다면 여러 가지 방법으로 해결할 수 있습니다. 그중에서 가장 쉬운 해결책은 목록의 요소를 직접 곱하는 대신에 순환 표현식을 사용하는 것입니다.