gpt4 book ai didi

python - 一种从字典 python 中查找嵌套值的方法

转载 作者:太空狗 更新时间:2023-10-30 02:42:25 24 4
gpt4 key购买 nike

<分区>

假设我有一个任意嵌套的字典:

d = {
11: {
21: {31: 'a', 32: 'b'},
22: {31: 'a', 34: 'c'},
},
12: {
1: {2: 3}
}
}

还有一个键列表,其位置告诉我在哪个嵌套字典中查找每个键:

keys = [11, 21, 31]
# keys = [11, 23, 44]

是否有一个简单的衬垫可以做到这一点?我查看了下面列出的问题,它们很相似,但并不是我真正想要的。我自己也尝试过并想出了这个:

from functools import reduce

def lookup(d, key):
return d.get(key, {}) if d and isinstance(d, dict) else None

def fn(keys, d):
return reduce(lookup, keys, d)

print(fn(keys, d)) # prints 'a'

这个问题是,如果是第二个键列表(请参阅注释掉的键),它会继续进一步查找嵌套键,即使没有找到更高级别的键,并且继续是没有意义的。如何在找到最终匹配项或失败后立即停止 reduce(下面列出的问题之一解决了它,但我不能真正将其应用到我的用例中......或者我可以?)?还有其他想法吗?哦,我只想使用官方 python 库来完成此操作。所以没有 numpypandas 等,但是 functoolsitertools 很好

Python: Convert list to dict keys for multidimensional dict with exception handling

Is there a simple one-liner for accessing each element of a nested dictioanry in Python?

Accessing nested values in nested dictionaries in Python 3.3

Using itertools for recursive function application

Stopping a Reduce() operation mid way. Functional way of doing partial running sum

Finding a key recursively in a dictionary

谢谢!

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