我想改變這個字典如何更改單詞中的詞典元素?
d = {"p ": {"e ": {"l ": {"t ": {}},
"t ": {}},
"o ": {"t ": {}}},
"t ": {"i ": {"a ": {},
"m ": {}},
"e ": {"o ": {}}}}
單詞的列表[「寵物」,「皮」,「鍋」,「添」,「蒂亞」,「TEO」],我不知道如何去做吧。
我想改變這個字典如何更改單詞中的詞典元素?
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)))
我很驚訝這實際上是多麼有效。仍然試圖圍繞我的大腦如何遞歸工作:( – 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