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

파이썬에서 여러 개의 딕셔너리를 병합하는 방법

파이썬으로 작업하다 보면 여러 개의 딕셔너리(dict)를 하나로 합쳐야 하는 경우가 자주 있습니다. 가장 기본적이면서도 널리 쓰이는 방법은 update() 메서드를 활용하는 것입니다.

update() 메서드로 딕셔너리 병합하기

병합 절차는 다음과 같습니다.

  1. 병합할 모든 딕셔너리 객체를 하나의 리스트에 담습니다.
  2. 병합된 결과를 담을 빈 딕셔너리를 초기화합니다.
  3. 리스트를 순회하면서 각 딕셔너리 항목으로 빈 딕셔너리를 업데이트합니다.

예제 코드

>>> d=[{'a':1, 'b':2, 'c':3}, {'a':1, 'd':2, 'c':'foo'}, {'e':57,'c':3}]
>>> d
[{'a': 1, 'b': 2, 'c': 3}, {'a': 1, 'd': 2, 'c': 'foo'}, {'e': 57, 'c': 3}]
>>> merged={}
>>> for x in d:
merged.update(x)

>>> merged
{'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 57}

결과 분석

세 개의 딕셔너리가 하나로 깔끔하게 병합되었습니다. 여기서 중요한 점은 키가 중복될 경우 나중에 처리된 값이 앞선 값을 덮어쓴다는 것입니다. 위 예제에서 두 번째 딕셔너리의 'c' 키 값인 'foo'는 세 번째 딕셔너리의 'c': 3에 의해 최종적으로 대체되었습니다.

그 밖의 병합 방법

딕셔너리 언패킹 (Python 3.5 이상)

반복문 없이 언패킹 연산자(**)를 사용하면 한 줄로 병합할 수 있습니다.

>>> merged = {**d[0], **d[1], **d[2]}

| 연산자 (Python 3.9 이상)

파이썬 3.9부터는 딕셔너리 병합 연산자(|)를 더욱 직관적으로 사용할 수 있습니다.

>>> merged = d[0] | d[1] | d[2]

이처럼 사용 중인 파이썬 버전과 상황에 맞는 방법을 선택하면 되며, update()를 이용한 반복문 방식은 어떤 버전에서도 동작한다는 장점이 있습니다.