Словарь Flatten Prog в Python - PullRequest
       7

Словарь Flatten Prog в Python

0 голосов
/ 01 августа 2020
d2={'a':'b', 'c':['d',{'e':'f'}], 'g':['h','i']}

Как мне сгладить этот словарь с помощью рекурсии, чтобы результат был следующим:

res=['a','b','c','d','e','f','g','h','i']

1 Ответ

2 голосов
/ 01 августа 2020

Другая версия:

d2={'a':'b', 'c':['d',{'e':'f'}], 'g':['h','i']}

def flatten(d):
    if isinstance(d, dict):
        for k, v in d.items():
            yield k
            yield from flatten(v)
    elif isinstance(d, list):
        for v in d:
            yield from flatten(v)
    else:
        yield d

out = [*flatten(d2)]
print(out)

Распечатывает:

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...