참조 vs 복사
파이썬의 변수는 기본적으로 = 연산시 '참조' 방식으로 작동한다.
>>> a_list = [2, 5, 10]
>>> b_list = a_list
>>> b_list.appentd(100)
>>> b_list.appentd(200)
>>> a_list # a_list 와 b_list는 동일객체이다
[2, 5, 10, 100, 200]
만약 리스트를 '복사' 하고 싶은 경우 항목 간 복사를 사용
>>> my_list = [1, 10, 5]
>>> yr_list = my_list[:]
얕은복사 vs 깊은복사
>>> a_list = [1, 10, [2, 3]]
>>> b_list = a_list[:] # 항목 간(member-by-member) 복사
>>> b_list[0] = 0
>>> b_list[1] = 0
>>> b_list[2][0] = 0
>>> b_list[2][1] = 0
>>> print(a_list)
[1, 10, [0, 0]] # b_list의 변경내용이 적용됨
# a_list 항목 간 복사시 a_list[2]는 리스트라 참조복사된 것
# 깊은복사
>>> import copy # copy 패키지 import
>>> a_list = [1, 10, [2, 3]]
>>> b_list = copy.deepcopy(a_list) # 이렇게 하면 모든 항목이 값으로 복사된다
'Python > 공통이론' 카테고리의 다른 글
Python - push pop 구현 (0) | 2023.04.06 |
---|---|
Python - enumerate 함수 (0) | 2023.04.04 |
Python - 문자열 - 불리언 메서드 (0) | 2023.03.29 |
Python - 진수 변환 (0) | 2023.03.29 |
Python - 문자열 - 관련함수2 (0) | 2023.03.29 |