我有2个词典,我想检查一个词是否在任何一个词典中。
我在尝试:
if dic1[p.sku] is not None:
我希望无论如何都有一个hasKey方法。
如果找不到密钥,我收到错误,为什么会这样?
答案 0 :(得分:13)
答案 1 :(得分:0)
他们这样做:
if dic1.has_key(p.sku):
答案 2 :(得分:0)
if dic1.get(p.sku) is None:
与您正在尝试的内容完全等效,但不包括KeyError
- 如果密钥不存在,则get
会返回None
或< / strong> a None
已明确存储为相应的值,这可用作“逻辑删除”密钥而无需实际更改密钥集的方法(如果不改变密钥集,则无法更改密钥集你正在循环使用dict,在没有锁定等的情况下也没有线程安全等,同时为已存在的密钥分配值None
是允许循环和线程安全)。
除非你有这样的要求,if p.sku not in dic1:
,正如@Michael建议的那样,在所有飞机上都是非常受欢迎的(更快,更简洁,更易读等等; - )。