파이썬 2차원 리스트 초기화 시 주의사항

박성재·2020년 12월 1일
1

알고리즘 공부

목록 보기
1/9
post-thumbnail

출처: [이것이 취업을 위한 코딩테스트다 - 나동빈 저](https://ridibooks.com/books/443000825
배너: godori님이 만드신 배너 메이커 활용

2차원 리스트 초기화 시 주의할 점

  • 특정 크기의 2차원 리스트를 초기화할 때는 반드시 리스트 컴프리헨션 이용!
  • 내부적으로 포함된 리스트가 모두 동일한 객체에 대한 레퍼런스로 인식되기 때문에, 의도치 않은 결과로 이어질 수 있다.

잘못된 사용 예시

# N x M 크기의 2차원 리스트 초기화(잘못된 방법)
n = 3
m = 4
array = [[0] * m] * n
print(array)

array[1][1] = 2
print(array)

출력 결과

[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 2, 0, 0], [0, 2, 0 ,0], [0, 2, 0, 0]]

올바른 사용 예시

# N x M크기의 2차원 리스트 초기화
n = 3
m = 4
array = [[0] * m for _ in range(n)]
print(array)

array[1][1] = 2
print(array)

출력 결과

[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

0개의 댓글