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”->{}给我们“宠物”等等。我很惊讶这实际上是多么有效。我还在想递归是如何工作的:(