본문 바로가기
Code/Python

[python] 이중리스트 할당을 조심하세요!

by hyelog 2023. 7. 5.

오늘 코드를 짜다 아주아주 화가 나는 오류를 겪다가 드디어 이유를 알아냈다.

너무 기본적인 실수라 너무 부끄럽지만

다시는 안하기 위해 공개 처형...😂

 

다음과 같이 이중 for문을 사용하는데 계속 같은 값이 동시에 들어가는 것이다!!!!

x = [[]]*5
for i in range(5):
    for j in range(3):
        x[i-1].append(j)

 

문제는 바로 리스트 선언에 있었다.

x = [[]]*5
for i in range(5):
    print(id(x[i]))

다 같은 주소들..

모든 내부 리스트의 주소값이 같았던 것!

 

이중 리스트 할당은 무조건... 리스트 컨프리헨션으로 합시다...

x = [[] for i in range(5)]
for i in range(5):
    print(id(x[i]))

다른 주소가 할당 되어따!

정신차리기...

댓글