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

파이썬으로 두 개의 딕셔너리 병합하기 – update() 메서드 활용법

이 프로그램에서는 두 개의 딕셔너리가 주어지며, 이를 하나로 합치는(병합하는) 것이 목표입니다. 여기서는 update() 메서드를 사용합니다. update() 메서드는 한 딕셔너리의 키-값 쌍을 다른 딕셔너리에 삽입하여 두 딕셔너리를 병합할 때 활용할 수 있습니다.

코드에서는 첫 번째 딕셔너리가 두 번째 딕셔너리에 병합되며, update() 메서드는 None을 반환합니다. None을 반환한다는 것은 새로운 딕셔너리가 생성되지 않고, 기존 딕셔너리가 직접(in-place) 수정된다는 의미입니다.

예시

입력::
A = {'AAA': 10}
B = {'BBB': 20}
출력::
C = {'BBB': 20, 'AAA': 10}

알고리즘

1단계: 먼저 사용자 입력으로 두 개의 딕셔너리를 생성합니다.
2단계: update() 메서드를 사용해 병합합니다. 첫 번째 딕셔너리가 두 번째 딕셔너리에 병합됩니다.
3단계: 최종 딕셔너리를 화면에 출력합니다.

예제 코드

def Merge(dict1, dict2): 
   return(dict2.update(dict1)) 
# 드라이버 코드 
d1 = dict()
d2 = dict()
data = input('이름과 학번을 ":"로 구분해 입력하세요 : ')
temp = data.split(':')
d1[temp[0]] = int(temp[1])
for key, value in d1.items():
   print('이름: {}, 학번: {}'.format(key, value))
data = input('이름과 학번을 ":"로 구분해 입력하세요 : ')
temp = data.split(':')
d2[temp[0]] = int(temp[1])
for key, value in d2.items():
   print('이름: {}, 학번: {}'.format(key, value))
# 이 함수는 None을 반환합니다 
(Merge(d1, d2)) 
print("병합 후 딕셔너리 ::>", d2) 

실행 결과

이름과 학번을 ":"로 구분해 입력하세요 : AAA:10
이름: AAA, 학번: 10
이름과 학번을 ":"로 구분해 입력하세요 : BBB:20
이름: BBB, 학번: 20
병합 후 딕셔너리 ::> {'BBB': 20, 'AAA': 10}

참고: 다른 병합 방법

update() 메서드 외에도 파이썬 3.5 이상에서는 {**dict1, **dict2} 언패킹 방식을, 파이썬 3.9 이상에서는 | 연산자(dict1 | dict2)를 사용해 새로운 딕셔너리를 생성하면서 병합할 수 있습니다. 원본 딕셔너리를 그대로 유지하고 싶다면 이러한 방법들이 더 유용합니다.