gpt4 book ai didi

Python dict get 函数没有做正确的事情?

转载 作者:行者123 更新时间:2023-11-28 21:09:25 24 4
gpt4 key购买 nike

我认为 .get(key, default=?) 函数只有在 key 不在时才会查看 default 部分字典。

我想做的是,查看一个键是否存在于我的主字典中,如果不存在,查看它是否存在于备份字典中,如果它既不在主字典中也不在备份字典中,则引发 KeyError。

因此,将上面的英文语句逐字翻译成 Python,我写道:val = mainDict.get(key, backupDict[key])

这样,如果 mainDict 没有 key,它将在 backupDict 中查找它,如果它也不存在则引发异常,因为我没有使用 get 进行 backupDict 查找。

发生的事情是,即使在检查 mainDict 是否有 key 之前,Python 也会抛出它不在 backupDict 中的异常.是的,它不在那里,因为它在 mainDict 中!

为什么会这样?

最佳答案

函数调用的参数在调用之前被评估。当您使用 backupDict[key] 作为参数时,必须对其进行评估,以便将结果传递给 getdefault 参数总是求值;它并不总是返回

如果您不想评估它,您可以使用一些替代公式,例如:

mainDict[key] if key in mainDict else backupDict[key]

这只会评估其中之一。

关于Python dict get 函数没有做正确的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361803/

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