gpt4 book ai didi

python - 从字典中获取项目的简单方法是什么,如果找不到,请从另一个字典中获取?

转载 作者:行者123 更新时间:2023-11-28 19:32:36 26 4
gpt4 key购买 nike

我想从a 中获取一个值。如果在那里找不到,则尝试从 b 获取它。如果在 b 中也找不到,则抛出异常。

a.get(key, b[key]) 不起作用,因为它不会延迟计算 b[key]

正确的做法是什么?

以下有效但似乎有点冗长。

value = a.get(key, b.get(key, 'not found'))
if value == 'not found':
raise Exception()

最佳答案

如果您使用的是 3.3+,则可以使用 ChainMap

from collections import ChainMap

a = {'a': 1}
b = {'b': 2}

# Add as many `dict`s as you want in order of priority...
chained = ChainMap(a, b)
print(chained['b'])

如果您只对检索感兴趣并且没有 3.3+ 可用,那么您可以推出自己的辅助函数:

def whatever(key, *args):
for mapping in args:
try:
return mapping[key]
except KeyError:
pass
raise KeyError(key)

然后将其用作 value = whatever('somekey', a, b)

关于python - 从字典中获取项目的简单方法是什么,如果找不到,请从另一个字典中获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195810/

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