擅长:python、mysql、java
<p>假设您有另一个字典或其他结构将父项映射到其子项,您可以定义一个递归函数来获取不同键的所有“叶”。如果树较大,您可能希望使用<code>functools.lru_cache</code>来记忆和重用过去的部分结果</p>
<pre><code>from functools import lru_cache
d = {'A': ['Number A'], 'B': ['Number B'],
'C': ['Number C'], 'D': ['Number D'],
'E': ['Number E'], 'F': ['Number F'],
'G': ['Number G']}
is_parent_of = {'C': ['A', 'B'], 'F': ['D', 'E'], 'G': ['C', 'F']}
@lru_cache(None) # optional, for caching
def get_leafs(x):
if x in is_parent_of:
return [z for y in is_parent_of[x] for z in get_leafs(y)]
else:
return d[x]
print({x: get_leafs(x) for x in d})
</code></pre>