반응형
파이썬에는 컴프리헨션이라는 기능이 있어서 리스트(배열)를 초기화 하는데 있어서 코드량을 많이 줄일 수 있습니다.
그리고 파이썬에서 2차원 리스트를 초기화 할때는 반드시 컴프리헨션을 사용하여야 합니다.
n = 3
m = 4
array = [[0]*m for _ in range(n)]
print(array)
#[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
array[1][1] = 5
print(array)
#[[0, 0, 0, 0], [0, 5, 0, 0], [0, 0, 0, 0]]
만약 컴프리헨션을 사용하지 않고 선언한다면 오류가 생길 수 있습니다.
n = 3
m = 4
array = [[0]*m] * n
print(array)
array[1][1] = 5
print(array)
#[[0, 5, 0, 0], [0, 5, 0, 0], [0, 5, 0, 0]]
이는 내부적으로 포함된 3개의 리스트가 모두 동일한 객체에 대한 3개의 레퍼런스로 인식되기 때문입니다.
2차원 리스트를 초기화 할때는 컴프리헨션을 사용하는 습관을 가집시다!
반응형
'...' 카테고리의 다른 글
[Python] collections 라이브러리 deque, Counter (0) | 2021.02.21 |
---|---|
[Python] 순열, 조합 라이브러리 itertools (0) | 2021.02.17 |
[Python] 리스트 특정값 모두 제거하기 (0) | 2021.02.17 |
[Python] 문자열 함수 총 정리 (0) | 2021.02.14 |
[Python] Set() 세트 함수 (0) | 2021.02.13 |