본문 바로가기
🐍 | Python

Python_두 개의 딕셔너리 합치기!

by KASSID 2022. 1. 19.

목차

    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

    댓글