딕셔너리를 합치기 위해 + 연산자를 사용하면, 에러가 발생합니다. +기호는 딕셔너리르 연산할 때 사용할 수 없습니다. 과거에는 update함수를 이용해야만 파이썬 dict 합치기가 가능했는데, 파이썬 3.9이상에서는 연산자를 이용해서 할 수도 있습니다. update 함수를 이용하는 방법부터 새로운 연산자까지 어떻게 해야 파이썬 딕셔너리를 합칠 수 있는지 차례대로 알아보겠습니다.

 

 

1. update 함수 이용하기

update함수는 기존 데이터에 키가 없으면 새로운 키와 값의 쌍을 추가합니다. 그리고 키와 값의 쌍이 있으면, 새로운 값으로 변경해줍니다. 예를 들어 아래와 같이 연산됩니다.

 

m1 = {"아침": "빵", "점심":"고기"}
m2 = {"점심": "국수", "저녁": "피자"}

m1.update(m2)

print(d1)

[결과]
{'아침': '빵', '점심': '국수', '저녁': '피자'}

 

'점심' 키가 동일하기 때문에 국수로 값이 변경됐습니다. 저녁은 없어서 추가됐습니다.

 

 

 

2. **kargs연산자 이용하기

**kargs연산자를 이용하면, 함수에 입력파라미터를 넣을 때 딕셔너리를 이용할 수 있습니다. 키가 입력파라미터의 변수명, 값이 입력값으로 처리됩니다. 이를 이용해서 아래와 같이 딕셔너리를 다시 정의하는 형태로 딕셔너리를 합칠 수 있습니다.

 

m3 = {**m1, **m2}
print(m3)

[결과]
{'아침': '빵', '점심': '국수', '저녁': '피자'}

 

 

3. Merge(|), Update(|=) 연산자 이용하기

파이썬 3.9이상 버전에서는 위의 2가지 새로운 연산자를 이용해 딕셔너리를 편집할 수 있습니다. Merge는 두 개의 딕셔너리를 합치는 것으로, 키에 중복이 있을 때는 뒤에 있는 값을 기준으로 변경됩니다.

 

m1 = {"아침": "빵", "점심":"고기"}
m2 = {"점심": "국수", "저녁": "피자"}

m1|m2

[결과]
{'아침': '빵', '점심': '국수', '저녁': '피자'}

 

m2|m1

[출력]
{'점심': '국수', '저녁': '피자', '아침': '빵'}

 

 

Update(|=)연산자는 기존 update함수와 동일합니다. 단 키와 값의 쌍으로 만들어진 튜플값도 업데이트 할 수 있습니다.

 

m1 = {"아침": "빵", "점심":"고기"}
m2 = {"점심": "국수", "저녁": "피자"}

m2|=m1
print(m2)

[결과]
{'점심': '고기', '저녁': '피자', '아침': '빵'}


m2|=[('아침', '과일'), ('점심', '설렁탕')]
print(m2)

[결과]
{'점심': '설렁탕', '저녁': '피자', '아침': '과일'}



오늘은 이렇게 파이썬 딕셔너리 합치기에 대해서 알아보았습니다. 3.9버전에서 새로운 연산자가 추가되서 조금 더 편리하게 딕셔너리를 합칠 수 있습니다. 새로운 연산자에 익숙해지는 것도 파이썬을 쉽게 사용할 수 있는 방법이 되겠네요.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기