딕셔너리 객체를 복사해 활용하는 과정에서 에러가 발생했다.
원인은 얕은 복사... 거의 2시간 이상을 원인 찾느라 소비했다.
dic1 = {'a': '1', 'b': '2'}
dic2 = dic1
dic2['a'] = '2'
여기서 dic2['a']는 '1'이 나올 것이라 예상할 수 있다.
그럼 dic1['a']는?? 값을 할당한 후 조작한 적이 없으니 '1'일까?
아니다. 답은 '2'. 왜냐면 딕셔너리를 '='을 이용해 할당할 경우, 주소값이 복사되는 얕은 복사가 일어나기 때문이다.
따라서, 값 자체를 복사받는 깊은 복사를 원한다면 아래와 같이 copy() 메서드를 이용하자.
dic2 = dic1.copy()
'Study' 카테고리의 다른 글
[Python] Sort 리스트 정렬 (오름차순, 내림차순) (0) | 2022.07.12 |
---|---|
[Pandas] 데이터프레임 인덱스 재설정 (0) | 2022.07.07 |
문자열에서 특정 문자열 삭제하는 네 가지 방법 (0) | 2022.07.05 |
pyenv 이용해 가상환경 구축 (Mac) (0) | 2022.06.30 |
입력 갯수 모를 때 입력받기 (0) | 2022.06.08 |
댓글