본 포스팅에서는 python 언어로 두 개의 dictionary 자료형을 병합(merge) 하는 방법에 대해 알아보겠습니다.
1. update( ) 사용하기
각각 서로다른 dict 자료형 변수(A, B)가 있을 때,
>>> A = { 'x' : 1 , 'y' : 2 }
>>> B = { 'q' : 100, 'w' : 200 }
dict자료형 변수(A)의 내부 함수인 update( ) 를 call 하면서 인자로 병합(merge)하고자 하는 dict 변수를 넘겨줍니다.
>>> A.update(B)
update함수를 call한 dict 변수(A)에 B 인자들이 병합된것을 확인 할 수 있습니다.
>>> A
{ 'x': 1, 'y': 2, 'q': 100, 'w': 200 }
이때, B 변수의 인자들은 그대로 유지되는 것을 확인할 수 있습니다.
>>> B
{'q': 100, 'w': 200}
새로운 변수 C에 결과가 반환 되지는 않습니다.
>>>C = A.update(B)
'None'
※ 만약, A, B에 동일한 key가 존재할 경우 B의 value값으로 교체됩니다.
>>> A = { 'x' : 1 , 'y' : 2 }
>>> B = { 'q' : 100, 'w' : 200, 'x': 1000 }
>>> A.update(B)
>>> A
{'x': 1000, 'y': 2, 'q': 100, 'w': 200}
2. 기존 변수들은 그대로 두고 새로운 변수에 병합(merge)하기
A, B 요소들은 그대로 두고 새로운 변수에 병합된 결과를 얻기 위해서는 copy를 이용하여 구현할 수 있습니다.
def merge_dicts( a, b):
c = a.copy() # a 변수를 c에 copy 한 후,
c.update(b) # c를 update하여 반환
return c
C = merge_dicts( A, B)
>>> A
{ 'x': 1, 'y': 2 }
>>> B
{'q': 100, 'w': 200}
>>> C
{ 'x': 1, 'y': 2, 'q': 100, 'w': 200 }
3. items() 함수 이용하기
A인자들과 B인자들을 논리연산자 | ('or')를 이용하여 병합하고 dict 변수로 형변환(casting)합니다.
>>> C = dict(A.items( ) | B.items( ) )
>>> { 'x': 1, 'y': 2, 'q': 100, 'w': 200,}
이상으로 포스팅을 마치겠습니다:)
'파이썬(Python)' 카테고리의 다른 글
[알고리즘] 만들 수 없는 금액 (0) | 2020.10.04 |
---|---|
[알고리즘] 문자열 뒤집기 (0) | 2020.10.04 |
[알고리즘] 곱하기 혹은 더하기 (0) | 2020.10.04 |
[알고리즘] 모험가 길드 문제 (0) | 2020.10.04 |
[Python] 파이썬 스크립트 실행 시간 제어 방법(time delay) (0) | 2020.04.08 |