Python 如何更改单词中的词典元素?

Python 如何更改单词中的词典元素?,python,list,dictionary,nested,Python,List,Dictionary,Nested,我想换这本字典 d = {"p ": {"e ": {"l ": {"t ": {}}, "t ": {}}, "o ": {"t ": {}}}, "t ": {"i ": {"a ": {}, "m ": {}}, "e ": {"o ": {}}}} 我不知道如何使用递归!发电机也使它很好 def paths(tree): if not tree:

我想换这本字典

d = {"p ": {"e ": {"l ": {"t ": {}},
                   "t ": {}},
            "o ": {"t ": {}}},
     "t ": {"i ": {"a ": {},
                   "m ": {}},
            "e ": {"o ": {}}}}

我不知道如何使用递归!发电机也使它很好

def paths(tree):
    if not tree:
        yield ''
    for k, subtree in tree.items():
        for path in paths(subtree):
            yield k + path

print(list(paths(d)))
您可以尝试以下方法:

import itertools
final_words = [[[key+i+e+''.join(l[e].keys()) if l[e] else key+i+e for e in l] for i, l in vals.items()] for key, vals in d.items()]
final_data = list(itertools.chain.from_iterable([list(itertools.chain.from_iterable(i)) for i in final_words]))
new_final_data = [''.join(i.split()) for i in final_data]
输出:

['pet', 'pelt', 'pot', 'tia', 'tim', 'teo']

很不清楚你是如何从字典中得到你的单词输出列表的。你能解释一下你想应用的逻辑吗?例如“p”->“e”->“l”->“t”->{}给我们“毛皮”p”->“e”->“t”->{}给我们“宠物”等等。我很惊讶这实际上是多么有效。我还在想递归是如何工作的:(