배경
하나의 딕셔너리 틀을 정해놓고 (shape 과 key), 여러개로 복사하여 각 딕셔너리마다 다른 value 값을 갖게 하고 싶었다.
# 아주 간단한 예
a = {1:0}
b = a
c = a
b[1] = 2
c[1] = 4
그런데, 결과를 출력해 보면 내가 원했던 결과인 {1:2} 과 {1:4} 이 아닌
b => {1:4}
c => {1:4}
이렇게 동일한 결과가 나온다.
설명
가변객체와 불변객체의 개념으로 설명할 수 있다.
예시를 하나 더 보여주면,
정수
a = 0
b = c = a
b += 2
c += 4
print(a, id(a)) # 0 1896359487760
print(b, id(b)) # 2 1896359487824
print(c, id(c)) # 4 1896359487888
딕셔너리
a = {1:0}
b = c = a
b[1] = 2
c[1] = 4
print(a, id(a)) # {1: 4} 1896469745024
print(b, id(b)) # {1: 4} 1896469745024
print(c, id(c)) # {1: 4} 1896469745024
+ (추가) 리스트
a = [0]
b = c = a
b[0] = 2
c[0] = 4
print(a, id(a)) # [4] 1896469623168
print(b, id(b)) # [4] 1896469623168
print(c, id(a)) # [4] 1896469623168
'🏷️CS > Python' 카테고리의 다른 글
[Matplotlib] 한글, 음수 깨짐 해결 (1) | 2023.12.29 |
---|---|
가상환경 접근 간소화 (0) | 2023.12.20 |
파이썬의 부동 소수점 연산 (0) | 2023.10.12 |
던더 메서드 #1 (0) | 2023.08.24 |
dir, help, inspect (0) | 2023.08.24 |