gpt4 book ai didi

python:动态获取字典中的子字典?

转载 作者:行者123 更新时间:2023-11-28 16:34:40 25 4
gpt4 key购买 nike

假设我想编写一个函数,它将从字典返回任意值,例如:mydict['foo']['bar']['baz'],或者返回一个空值如果没有,则为字符串。但是,我不知道mydict['foo']是否一定存在,更不用说mydict['foo']['bar']['baz'] .

我想做这样的事情:

safe_nested(dict, element):
try:
return dict[element]
except KeyError:
return ''

但我不知道如何编写代码来接受函数中的查找路径。我开始接受句点分隔的字符串(如 foo.bar.baz),这样这个函数就可以递归地尝试获取下一个子字典,但这感觉不太像 Pythonic .我想知道是否有办法同时传递字典 (mydict) 和我感兴趣的子结构 (['foo']['bar'][' baz']),并让函数尝试访问它或在遇到 KeyError 时返回空字符串。

我的处理方式是否正确?

最佳答案

你应该使用标准的defaultdict:https://docs.python.org/2/library/collections.html#collections.defaultdict

关于如何嵌套它们,参见:defaultdict of defaultdict, nestedMultiple levels of 'collection.defaultdict' in Python

我认为这可以满足您的需求:

from collections import defaultdict
mydict = defaultdict(lambda: defaultdict(lambda: defaultdict(str)))

关于python:动态获取字典中的子字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28039608/

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