아이엠 !나이롱맨😎
article thumbnail
반응형

 

 

파이썬에는 컴프리헨션이라는 기능이 있어서 리스트(배열)를 초기화 하는데 있어서 코드량을 많이 줄일 수 있습니다.

 

그리고 파이썬에서 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차원 리스트를 초기화 할때는 컴프리헨션을 사용하는 습관을 가집시다!

반응형

article prev thumbnail
article next thumbnail
profile on loading

Loading...