字典:如果字典值包含 None,get() 不返回 0

Man*_*hav 5 python

python dict 如果一个键具有值 None 并且在调用 get() 时返回 NoneType

ex_dict = {"test" : None} ex_dict.get('test', 0)

在上面的例子中它应该返回 0 但它不会。

任何人都可以解释为什么它的行为如此。

小智 6

None中的响应正常ex_dict.get('test', 0),因为“test”键存在并且具有None值。例如,如果您尝试同样的操作,ex_dict.get("non_existing_key", 0)它将返回 0。


nik*_*k_m 6

不,不应该。如果testex_dict字典中找不到键,它应该返回0。但是,因为它存在它会返回None

ex_dict = {"test" : None}
print type(ex_dict.get('test', 0))  # <class 'NoneType'>, 'test' exist, return None

print(ex_dict.get('hello', 0))  # prints 0, 'hello' isn't a key inside ex_dict
Run Code Online (Sandbox Code Playgroud)

  • 你想要做 `ex_dict.get("test", 0) 或 0`。如果该键不存在或设置为“无”,则返回 0 (2认同)
  • 正确的。或者更简单的 `ex_dict.get("test") or 0`。 (2认同)