[Python] 2차원 리스트
*참고 : https://dojang.io/mod/page/view.php?id=2291
a = [[10, 20],
[30, 40],
[50, 60] ]
2차원 리스트의 할당과 복사
파이썬의 리스트는 다른 변수에 할당해도 변수 이름만 달라질 뿐 같은 리스트를 가르킵니다. 복사가 아닌 참조가 되었기 때문입니다. 2차원 리스트도 마찬가지 입니다.
>>> a = [[10, 20], [30, 40]]
>>> b = a
>>> b[0][0] = 500
>>> a
[[500, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
위와같이 a 객체를 b에 할당하고 b 안의 원소를 바꿨는데, a 안의 원소도 같이 바뀌는걸 볼 수 있습니다.
리스트에선 이 문제를 해결하기 위해 copy
메소드를 사용합니다.
>>> a = [[10, 20], [30, 40]]
>>> b = a.copy()
>>> b[0][0] = 500
>>> a
[[500, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
그런데 여기선 copy
를 사용해도 변화가 없습니다. 2차원 이상의 다차원 리스트에서는 완전 복사를 위해 copy 모듈의 deepcopy
메소드를 사용해야 합니다.
>>> import copy # copy 모듈을 가져옴
>>> a = [[10, 20], [30, 40]]
>>> b = copy.deepcopy(a) # copy.deepcopy 함수를 사용하여 깊은 복사
>>> b[0][0] = 500
>>> a
[[10, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
Author And Source
이 문제에 관하여([Python] 2차원 리스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yanz/Python-2차원-리스트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)