본문 바로가기
프로그램

[파이썬] 문제 : 두 딕셔너리 병합(합치기, 정렬)

by 오디세이99 2023. 1. 16.
728x90
반응형

dict_first = {'사과':30, '배':15, '감':10, '포도':10}
dict_second = {'사과':5, '감':25, '배':15, '귤':25}

def merge_dict(dict_first, dict_second):
    result = {}                                # 2개의 딕셔너리를 합치는 결과 딕셔너리 변수
    for k1, k2 in zip(dict_first.items(), dict_second.items()):   # 2개 딕셔너리 Key, 값 쌍을 가져옴( ('사과',30),('사과',5))
        if k1[0] in result:                    # k1[0]은 첫번째 딕셔너리의 Key. Key가 result 딕셔너리에 있으면
            result[k1[0]] += k1[1]             # 기존에 있는 값에 새로운 값을 더함
        else:                                  # k1[0]은 첫번째 딕셔너리의 Key. Key가 result 딕셔너리에 없으면
            result[k1[0]] = k1[1]              # 새로운 Key로 추가

        if k2[0] in result:                    # k2 즉 두번째 딕셔너리 처리
            result[k2[0]] += k2[1]
        else:
            result[k2[0]] = k2[1]
 
    rtn = {}                                   # 딕셔너리 Key값으로 정렬하기 위한 결과 딕셔너리 변수
    for key in sorted(result.keys()):         # Key값을 가져 옴. 이때 Key값으로 정렬한 것으로 사용.
        rtn[key] = result[key]                # rtn 변수에 Key와 값을 추가
    return rtn

print(merge_dict(dict_first, dict_second))

728x90
반응형

댓글