에 대한 설명서를 읽는 동안 dict.copy()
사전의 얕은 사본을 만듭니다. 내가 따르는 책 (Beazley 's Python Reference)도 마찬가지입니다.
m.copy () 메소드는 맵핑 오브젝트에 포함 된 항목의 얕은 사본을 작성하여 새 맵핑 오브젝트에 배치합니다.
이걸 고려하세요:
>>> original = dict(a=1, b=2)
>>> new = original.copy()
>>> new.update({'c': 3})
>>> original
{'a': 1, 'b': 2}
>>> new
{'a': 1, 'c': 3, 'b': 2}
그래서 나는 original
얕은 사본을하고 있었기 때문에 이것이 값을 업데이트하고 'c': 3을 추가 한다고 가정했습니다 . 목록을 작성하는 것처럼 :
>>> original = [1, 2, 3]
>>> new = original
>>> new.append(4)
>>> new, original
([1, 2, 3, 4], [1, 2, 3, 4])
이것은 예상대로 작동합니다.
둘 다 얕은 사본이므로 왜 dict.copy()
예상대로 작동하지 않습니까? 아니면 얕은 대 깊은 복사에 대한 나의 이해가 잘못 되었습니까?