일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- git
- html
- win32com
- matlab
- 파워포인트
- pyqt5
- 윈도우11
- 오피스
- Excel
- 윈도우10
- 깃
- 파이썬3
- 엑셀
- 안드로이드
- Outlook
- VBA
- windows
- Android
- pandas
- Windows11
- office
- python3
- 아웃룩
- 비주얼베이직
- 문자열
- 파이썬
- pythongui
- 파이썬GUI
- python
- Windows10
Appia의 IT세상
파이썬[Python] 2개 이상의 딕셔너리(Dictionary) 합치기 본문
ㅇ파이썬[Python]에서 저는 가장 매력적인 데이터 타입이 딕셔너리(Dictionary)라고 생각합니다. 키와 값을 별도로 분리해서 관리하기 때문에 때론 이 부분이 클래스(Class)같기도 하고 때론 리스트 형태의 데이터 타입인것 같기도 합니다. 물론 이건 저의 개인적인 생각입니다.
딕셔너리(Dictionary)를 가지고 작업을 할때 다양한 니즈가 있을 수 있지만 저의 경우 가장 많은 니즈가 바로 2개 이상의 딕셔너리(Dictionary)의 합치는 것입니다. 물론 최신 버전에서는 매우 간단하게 사용가능합니다. 하지만, 파이썬[Python] 3.4 미만 버전 또는 2점대 버전을 사용하는 부분에서는 생각보다 번거로운 작업이 될 수 있습니다. 그래서 이번 포스팅에서는 이러한 딕셔너리(Dictionary)를 합치는 방법에 대해서 이야기 해보고자 합니다.
크게 파이썬 버전에 따라 3.4이상 버전과 3.4미만 또는 2.x 버전을 별개로 다루어 보고자 합니다.
파이썬[Python] 3.4 버전 이상
먼저 파이썬[Python] 3.4버전 이상에서는 매우 간단합니다. 다음 예시를 한번 살펴보겠습니다.
example)
x = {'a': 1, 'b': 2} y = {'b': 10, 'c': 11} z = { 'd': 9,'z' : 14, 'y' : 13} merged = {**x,**y,**z} print(merged) | cs |
result)
{'a': 1, 'b': 10, 'c': 11, 'd': 9, 'z': 14, 'y': 13} | cs |
이와 같이 {**x,**y,**z}를 통해서 딕셔너리(Dictionary)를 합칠 수 있습니다. 물론 키값이 중복된다면 나중에 언급된 딕셔너리(Dictionary)에 포함된 값으로 덮어쓰기가 됩니다. 생각보다 매우 간단합니다. 그럼 파이썬[Python] 3.4 버전 미만이나 2점대 버전에서 사용하는 방법에 대해서 한번 살펴 보도록 하겠습니다.
파이썬[Python] 3.4 버전 미만 또는 2점대 버전
예전 버전에서는 **을 이용해서 딕셔너리(Dictionary)를 하나로 합칠 수 없기 때문에 다른 방법을 써야 합니다. 그래서 저는 하나의 함수를 만들어서 사용할 것을 권장합니다. 그럼 다음 함수 예시를 살펴보겠습니다.
function)
def merge_two_dicts(x, y): z = x.copy() z.update(y) return z | cs |
먼저, z에 기존 입력으로 받은 x를 복사합니다. 그런 후에 y 값을 업데이트 하고 나서 z를 반환하는 구조 입니다. 그럼 이 함수를 유용하여 다음 예제를 살펴보겠습니다.
example)
# Merge 함수 정의 def merge_two_dicts(x, y): z = x.copy() z.update(y) return z # 합쳐질 대상 선언 x = {'a': 1, 'b': 2} y = {'b': 10, 'c': 11} z = { 'd': 9,'z' : 14, 'y' : 13} merged = merge_two_dicts(x,y) # x,y 먼저 Merge진행 후 출력 print(merged) merged = merge_two_dicts(merged,z) # x,y Merge진행 결과에 z Merge진행 후 출력 print(merged) | cs |
result)
{'a': 1, 'b': 10, 'c': 11} {'a': 1, 'b': 10, 'c': 11, 'd': 9, 'z': 14, 'y': 13} | cs |
첫번째 결과는 x, y를 합친 결과이고, 그 다음 결과는 앞서 합친 결과에 z를 합친 결과입니다. 파이썬[Python] 버전에 따라 조금 불편한 부분은 존재합니다. 저의 개인적인 생각으로는 이 뿐 아니라 다른 기능적인 문제로 인해서라도 신규 버전 적용이 더 유용하지 않을까라는 생각을 합니다.
오늘은 딕셔너리(Dictionary)를 합치는 방법에 대해서 한번 살펴봤습니다. 혹시 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다.
'Python > Python 응용' 카테고리의 다른 글
파이썬[Python] 리스트 짝수, 홀수번째 아이템 출력 - 나눗셈, 나머지, 몫 구하기(divmod) 이용 (0) | 2020.05.04 |
---|---|
파이썬[Python] 리스트 반복문에서 인덱스(index)와 값 같이 출력하기(enumerate) (1) | 2020.05.02 |
파이썬[Python] List를 이용한 경우의 수 추출하기 (1) | 2020.03.22 |
파이썬[Python] 알파벳/숫자인지 확인하기(isalpha, isdigit, isalnum) (0) | 2020.03.14 |
파이썬[Python] 단어들의 사용빈도 확인하기 (3) | 2020.03.10 |