본문 바로가기

Programming/Python

[Python] 2개의 Dictionary 합치는 방법

 

중복된 Key 값이 없을 경우

dict_1 = {'A' : 1, 'B' : 2, 'C' : 3, 'D' : 4}
dict_2 = {'E' : 5, 'F' : 6, 'G' : 7, 'H' : 8}
result_dict = dict_1
result_dict.update(dict_2)
 
>>> result_dict
{'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8}

 

 

 

중복된 Key 값이 있을 경우

중복된 Key값이 있을 때 update를 수행하면, 업데이트할 대상으로 덮어쓰기  발생

dict_1 = {'A' : 1, 'B' : 2, 'C' : 3, 'D' : 4}
dict_2 = {'C' : 5, 'D' : 6, 'E' : 7, 'F' : 8}

 

따라서 Counter 를사용하여 수행하면 아래와 같습니다.

from collections import Counter

result = dict(Counter(dict_1) + Counter(dict_2))

>>> result
{'A': 1, 'B': 2, 'C': 8, 'D': 10, 'E': 7, 'F': 8}

코드를 자세히 설명하자면 

Counter(dict_1)은 {'A': 1, 'B': 2, 'C': 3, 'D': 4}를 반환하고
Counter(dict_2)는 {'C': 5, 'D': 6, 'E': 7, 'F': 8}를 반환하고
이 두 개의 Counter 객체를 더하면 중복된 항목의 횟수가 더해지고 'C'와 'D'는 두 딕셔너리에 모두 있으므로 횟수가 합쳐지게 됩니다.

반응형
LIST