python 중첩 dict를 flatten 외부 라이브러리 없이 펴는 방법이 뭘까요?

조회수 601회
nested = {'X': {'a': {'one': 10, 'two': 20}, 'b': {'one': 10, 'two': 20}},
          'Y': {'a': {'one': 10, 'two': 20}, 'b': {'one': 10, 'two': 20}}}

이 dict 값을

nested = {'X_a_one':10, 'X_a_two':20...}

으로 flat 시키려합니다.

아래와 같이 시도했지만 중간에 머리가 안 돌아가네요...

def flat_dict(dup_dict):
    result = {}
    for k, v in dup_dict.items():
        if type(v) is dict:
            for k1, v1 in v.items():
                if type(v1) is dict:
                    key = k+k1
                    value = v1
                for k2, v2 in v1.items():
                    print(k2, v2)
                    print("key:", k+k1+k2, "/value:", v2 )
        else:
            result[k] = v
        # if type(v) is dict:
        #     _flat_dict_rec(k, v, result)
    return
  • 재귀함수가 등장해야 할 것 같아요. nowp 2020.12.10 17:55
  • 결국 import collections 를 통해서 해결했네요... 김재민 2020.12.11 10:14

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)