Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 두 개의 딕셔너리 병합하기: update() 메서드와 ** 연산자 활용법

이 튜토리얼에서는 파이썬(Python)에서 두 개의 딕셔너리(dictionary)를 하나로 합치는 방법을 배워보겠습니다. 실무에서 가장 많이 사용되는 두 가지 대표적인 병합 방식을 예제 코드와 실행 결과와 함께 차근차근 살펴보겠습니다.

1. update() 메서드 활용하기

가장 기본적인 방법은 딕셔너리에 내장된 update() 메서드를 사용하는 것입니다. 이 메서드는 None을 반환하며, 호출한 딕셔너리에 다른 딕셔너리의 키-값 쌍을 직접 추가합니다. 즉, 원본 딕셔너리가 그대로 수정되는(in-place) 방식입니다.

예제 코드

## 딕셔너리 초기화
fruits = {"apple": 2, "orange": 3, "tangerine": 5}
dry_fruits = {"cashew": 3, "almond": 4, "pistachio": 6}

## fruits 딕셔너리 업데이트
fruits.update(dry_fruits)

## 두 딕셔너리의 모든 키:값 쌍이 포함되어 출력됩니다
print(fruits)

위 프로그램을 실행하면 아래와 같은 결과를 확인할 수 있습니다.

실행 결과

{'apple': 2, 'orange': 3, 'tangerine': 5, 'cashew': 3, 'almond': 4, 'pistachio': 6}

참고로 두 딕셔너리에 동일한 키가 존재하면, update() 메서드의 인자로 전달된 딕셔너리의 값이 기존 값을 덮어쓰게 됩니다.

2. ** 언패킹 연산자 활용하기

** 연산자는 특수한 상황에서 딕셔너리를 언패킹(unpacking)하는 데 사용됩니다. 여기서는 이 연산자를 활용해 두 개의 딕셔너리를 새로운 딕셔너리 하나로 합쳐보겠습니다. 이 방법은 원본 딕셔너리를 변경하지 않고 새로운 딕셔너리를 생성한다는 장점이 있습니다.

예제 코드

## 딕셔너리 초기화
fruits = {"apple": 2, "orange": 3, "tangerine": 5}
dry_fruits = {"cashew": 3, "almond": 4, "pistachio": 6}

## 두 딕셔너리 병합
new_dictionary = {**dry_fruits, **fruits}
print(new_dictionary)

위 프로그램을 실행하면 아래와 같은 결과가 출력됩니다.

실행 결과

{'cashew': 3, 'almond': 4, 'pistachio': 6, 'apple': 2, 'orange': 3, 'tangerine': 5}

{**a, **b} 형태에서 중복된 키가 있다면 뒤에 위치한 b의 값이 우선 적용되므로, 병합 순서도 함께 고려하는 것이 좋습니다.

마치며

개인적으로는 원본 데이터를 보존할 수 있는 두 번째 방법(** 연산자)을 더 선호하지만, 어떤 방법을 선택할지는 상황과 취향에 따라 달라질 수 있습니다. 참고로 파이썬 3.9부터는 | 연산자(예: fruits | dry_fruits)로도 딕셔너리를 간결하게 병합할 수 있으니 함께 알아두면 유용합니다.

튜토리얼 내용에 대해 궁금한 점이나 추가 질문이 있다면 댓글로 남겨주세요!