list에 다른 변수 할당할 경우 주의할 점
- python에서 list를 다른 변수에 할당하게 되면, 참조형태로 전달되기 때문에 실제로 같은 물리공간에 위치한 데이터를 가리킨다.
- new_scores 리스트의 값이 변경될 경우 scores 리스트도 함께 변경된다
# 원본 데이터와 같은 주소를 바라보게 됨
>>> scores = [1, 2, 3, 4, 5]
>>> new_scores = scores # 값을 복사하는것이 아닌 위치만 참조하는것
>>> new_scores.append(6)
>>> new_scores
[1, 2, 3, 4, 5, 6]
>>> scores
[1, 2, 3, 4, 5, 6]
해결방법
참조하는 형태가 아닌 값을 복사하는 형태로 값을 가져오려면 copy모듈 또는 slice[:]를 사용하면 된다 ❗️
>>> scores = [1, 2, 3, 4, 5]
>>> new_scores = scores[:] # 방법 1
>>> new_scores = scores.copy() # 방법 2
>>> new_scores.append(6)
>>> new_scores
[1, 2, 3, 4, 5, 6]
>>> scores
[1, 2, 3, 4, 5]
반응형
'Dev > Python' 카테고리의 다른 글
[Python] 제어문과 조합하여 만들기 Comprehension (0) | 2021.07.06 |
---|---|
[Python] set() (0) | 2021.07.06 |
[Python] format() (0) | 2021.07.03 |
[Python] terminal에서 Python console 지우기 (0) | 2021.07.03 |
[Python] counter (0) | 2021.06.15 |