본문 바로가기

Dev/Python

[Python] list에 다른 변수 할당할 경우 주의할 점

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