[python]다중 배열 만들기

김은지·2022년 12월 13일
0

학습 내용 정리

목록 보기
24/25
array = [[0]*8]*5

최근에 파이썬 코드를 작성하며 위와 같이 2차원 배열을 생성했다.

값을 할당하면, array[0][0], array[1][0], array[2][0] ... 의 값이 공유되는 문제가 있었다.

원인을 찾아보니

[파이썬]2차원 리스트 곱하기 VS 리스트 컴프리헨션

곱하기로 2차원 리스트를 만들면 리스튼는 참조복사된다. (실제로는 같은 객체라는 얘기)

같은 주소를 참조하기 때문에, array[0][0]에 값을 할당하면 그 값을 공유하는 문제가 발생했던 것이다.

따라서 리스트 컴프리헨션을 사용해서 아래와 같이 배열을 생성하여야 한다.

array = [0 for _ in range(8)] for _ in range(5)]

지금이라도 알게되어서 참 다행이다..!

0개의 댓글