gpt4 book ai didi

python - 如何实现通过嵌套字典查找关键路径的函数 max_leaf_path(d) ?

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:14 25 4
gpt4 key购买 nike

给定一个嵌套字典,其中非字典值是整数(叶子值),通过嵌套字典找到返回最大整数的键路径。

d={
'a': {
'1': 10,
'2': 20,
'3': 30,
},
'b': {
'c': {
'1': 100,
'2': 200,
'3': 300
}
},
'c': {}
}

此外,我应该实现函数 path_value(dictionary,path),该函数通过遵循路径返回嵌套字典结构中的值。

max_leaf_path(d) # returns ['b', 'c', '3']

path_value(d,['b', 'c', '3'])==300

最佳答案

创建一个可以展平嵌套字典的函数。然后就可以轻松找到最大值以及它对应的key

>>> d = { 'a': { '1': 10, '2': 20, '3': 30, }, 'b': { 'c': { '1': 100, '2': 200, '3': 300 } }, 'c': {} }
>>>
>>> flatten = lambda d, pref='': {k2:v2 for k,v in d.items() for k2,v2 in (flatten(v, pref+k) if isinstance(v, dict) else {pref+k:v}).items()}
>>>
>>> max_leaf_path = lambda d: list(max(flatten(d).items(), key=lambda t: t[1])[0])
>>> max_leaf_path(d)
['b', 'c', '3']
>>>
>>> path_value = lambda d, l: path_value(d[l[0]], l[1:]) if l else d
>>> path_value(d, ['b', 'c', '3'])
300

关于python - 如何实现通过嵌套字典查找关键路径的函数 max_leaf_path(d) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com