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

问题描述:

我想改变这个字典如何更改单词中的词典元素?

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

单词的列表[“宠物”,“皮”,“锅”,“添”,“蒂亚”,“TEO”],我不知道如何去做吧。

+4

你如何从字典中的单词的输出列表这是非常不清楚。你能解释你想申请的逻辑吗? – asongtoruin

+0

例如“p” - >“e” - >“l” - >“t” - > {}给我们“毛皮” “p” - >“e” - >“t” - > {} “宠物”等 – t387

使用递归!发电机也很好。

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))) 
+0

我很惊讶这实际上是多么有效。仍然试图围绕我的大脑如何递归工作:( – Mangohero1

你可以试试这个:

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']