如何更改单词中的词典元素?
问题描述:
我想改变这个字典如何更改单词中的词典元素?
d = {"p ": {"e ": {"l ": {"t ": {}},
"t ": {}},
"o ": {"t ": {}}},
"t ": {"i ": {"a ": {},
"m ": {}},
"e ": {"o ": {}}}}
单词的列表[“宠物”,“皮”,“锅”,“添”,“蒂亚”,“TEO”],我不知道如何去做吧。
答
使用递归!发电机也很好。
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']
你如何从字典中的单词的输出列表这是非常不清楚。你能解释你想申请的逻辑吗? – asongtoruin
例如“p” - >“e” - >“l” - >“t” - > {}给我们“毛皮” “p” - >“e” - >“t” - > {} “宠物”等 – t387