반응형
알고리즘을 하면서 주의할 점이 list, set, dict 등의 컨테이너 타입을 쓸 때이다.
컨테이너 타입은 일반적으로 복사를 하게 되면 주소값이 들어가 변경하게 되면 복사된 값까지 그대로 옮겨가게 되기 때문이다.
s = set()
s.add(1)
ss = s
s.add(2)
print(ss)
# 결과 {1,2}
l = [tuple()]*17
l[0] = (1,2)
ll = l
l[0] = (1,3)
print(ll)
# [(1, 3), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ()]
그러므로 복사를 하기 위해선 copy에 있는 deepcopy를 사용 혹은 리스트 컴프리헨션을 사용하여 복사해줘야 한다.
'파이썬' 카테고리의 다른 글
[Python] for else (0) | 2020.10.06 |
---|---|
Decorator (0) | 2020.09.20 |
First class function, Closure (0) | 2020.09.20 |
char 형 -> int 형 변환 (0) | 2020.09.19 |