这是我的代码
if "value" not in dictionary():
do something
else:
do something else
我收到错误“TypeError: 'dict' object is not callable.
我尝试将第一行更改为
if dictionary["value"]:
但是得到一个不同的错误。我哪里出错了?
请您参考如下方法:
假设 dictionary 实际上是一个由键值对组成的 dict() 那么它将是
if 'value' not in dictionary:
...etc
该错误本质上是在告诉您您正在错误地尝试调用一个不可调用的对象,就好像它是一个方法/函数一样。
如果您对某个值是否存在不是特别感兴趣,您可以使用我个人很喜欢的方法:
some_value = dictionary.get('value', 'valueIfNotPresent')
do_something(some_value)
上面允许你提供一个标记值(当键不存在时提供)。这可以帮助消除分支(例如,不必 if/else ,只允许您的代码对标记进行操作)或至少减少检查 key 是否存在的逻辑(除非缺少 key 很重要)。
两者都非常可读,但是您的里程可能会有所不同。
编辑:
@user1857805 是正确的,如果您试图找出一个值是否在字典中,那么上述内容(虽然仍然很好且有效)是不够的。您需要从字典中获取 .values() 作为列表;但是,由于字典可能包含字典,因此您需要递归字典以查找所有可能存储的值。
