Python dict.get 返回 0 评估为 false

标签 python python-3.x dictionary boolean

我在条件语句中使用 dict.get() 来检查用户定义的字典中是否存在某些内容(通常来自 yaml 或 json 配置文件)。这对我来说效果很好,但我有这个边缘情况:

my_dict = {
    'my_key': 0.0
}

if my_dict.get('my_key'):
    # do some stuff

这里,'my_key'确实存在于字典中,因此get不会返回None。但是,由于 0.0 在条件中被视为 False,因此这不会像大多数情况下那样工作。我可以解决这个问题:

if my_dict.get('my_key') is not None:
    # do some stuff

但这对我来说似乎有点冗长。对于一个条件来说,这没什么大不了的,但是将多个条件串在一起很快就会变得有点烦人。

我的问题很简单:有没有更简洁的方法来做到这一点?

最佳答案

不,使用 .get() 也同样冗长。所有零值数字、空序列或 None 将被评估为 False。如果您想区分它们,则必须显式检查 None

但正如 @mingaleg 在评论中提到的。如果您仅使用它来检查 key 是否在字典中,则可以使用 if 'my_key' in my_dict:

关于Python dict.get 返回 0 评估为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60659279/

相关文章:

python - 检查给定键是否已存在于字典中

Python:在一个 IF 语句中组合 NOT、AND、IN

python - 根据 OptionMenu 的选择运行命令

python - SWIG 和 Python3 导入错误

python - 如何从每个键的数据帧字典中获取平均值和标准差

Python 嵌套列表操作

python - Flask 应用程序在 Xampp 中返回 404

python - 使用 Python/BeautifulSoup 迭代 .txt 文件中的多个 URL

Python Tkinter Treeview - 迭代 'get_children' 输出

python - 将 pd 数据框填写到现有的 excel 表中(使用 openpyxl v2.3.2)