목차
728x90
파이썬의 dictionary를 다루는 도중
2개의 dictionary를 합치는 방법에 대해서 공부해보았다!
1. key값이 겹치지 않을 때
dict_1 = {'A':1, 'B':2, 'C':3}
dict_2 = {'D':1, 'E':2, 'F':3}
- update()
result = dict_1
result.update(dict_2)
>>> {'A': 1, 'B': 2, 'C': 3, 'D': 1, 'E': 2, 'F': 3}
dictnary의 메소드 중 하나인 update를 이용하면
위와 같이 두 개를 합칠 수 있다.
이때, key값이 모두 겹치지 않아야 한다는 전제조건이 있다.
만약 겹친다면,
중복된 기존 key값은 update의 인수로 넣어준 값으로 대체된다.
2. key값이 겹칠 때
데이터를 딕셔너리로 처리할 때
새로운 결과를 추가하고 싶은 경우
이 방법을 활용을 할 수 있을 것이다!
- Counter
파이썬에서 지원하는 collections 모듈에는
Counter라는 객체가 있다.
이를 이용해보자!
dict_1 = {'A':1, 'B':2, 'C':3}
dict_2 = {'A':1, 'D':2, 'C':3}
from collections import Counter
result = dict(Counter(dict_first)+Counter(dict_second))
result
>>> {'A': 2, 'B': 2, 'C': 6, 'D': 4}
Counter를 이용하여 두 dictionary 각각의 요소들의 수를 세어준 뒤
합쳐주는 방식으로 해결을 해보았다!
조건을 활용하는 방식
Counter를 이용하지 않고 조건문을 통해
해결을 해보았다.
result = dict_1
temp = list(dict_2.keys())
for i in range(len(dict_2)):
if temp[i] in result:
result[temp[i]] += dict_2[temp[i]]
else:
result[temp[i]] = dict_2[temp[i]]
result
>>> {'A': 2, 'B': 2, 'C': 6, 'D': 4}
'🐍 | Python' 카테고리의 다른 글
[Python] collections 모듈 (0) | 2023.01.05 |
---|---|
Python_Call by Object Reference (0) | 2022.01.18 |
Python_문자열 뒤집기 (0) | 2022.01.17 |
파이썬 문법 공부 (0) | 2021.08.29 |
댓글