파이썬(Python)의 내장 dict 클래스는 update() 메서드를 제공합니다. 이 메서드는 다른 딕셔너리 객체를 인수로 받아 기존 딕셔너리에 병합하는 역할을 합니다.
기본 문법
D1.update(D2)
동작 방식
update() 메서드가 호출되면 D2 객체의 내용이 D1에 병합됩니다. 이때 다음과 같은 규칙이 적용됩니다.
- 기존 키가 있는 경우: D2에 이미 D1에 존재하는 키가 포함되어 있다면, 해당 키의 값이 D2의 값으로 업데이트됩니다.
- 새로운 키인 경우: D2에 D1에 없는 새로운 키가 있다면, 새로운 키-값(key-value) 쌍이 D1에 추가됩니다.
메서드 호출 후 D1은 병합 및 업데이트된 최종 내용을 담게 됩니다.
예제 코드
D1={"pen":25, "pencil":10, "book":100, "sharpner":5, "eraser":5}
D2={"book":200, "scale":10}
D1.update(D2)
print(D1)
출력 결과
{'pen': 25, 'pencil': 10, 'book': 200, 'sharpner': 5, 'eraser': 5, 'scale': 10}
위 예제에서 "book" 키는 두 딕셔너리 모두에 존재하므로 값이 100에서 200으로 변경되었습니다. 반면 "scale" 키는 기존 D1에 없던 새로운 키이므로 딕셔너리 끝에 그대로 추가된 것을 확인할 수 있습니다.
참고: 병합 연산자(|) 활용하기
파이썬 3.9 버전부터는 |(병합) 연산자를 사용해 두 딕셔너리를 합칠 수도 있습니다. 이 방법은 원본 딕셔너리를 수정하지 않고 새로운 딕셔너리를 생성한다는 점이 update()와 다릅니다.
D3 = D1 | D2 # 원본 유지, 병합된 새 딕셔너리 반환