我在条件语句中使用 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/