【发布时间】:2010-08-02 23:48:57
【问题描述】:
我有 2 个字典,我想检查其中一个字典中是否有一个键。
我正在尝试:
if dic1[p.sku] is not None:
无论如何,我希望有一个 hasKey 方法。
如果找不到密钥,我会收到错误消息,这是为什么呢?
【问题讨论】:
标签: python dictionary
我有 2 个字典,我想检查其中一个字典中是否有一个键。
我正在尝试:
if dic1[p.sku] is not None:
无论如何,我希望有一个 hasKey 方法。
如果找不到密钥,我会收到错误消息,这是为什么呢?
【问题讨论】:
标签: python dictionary
【讨论】:
他们这样做:
if dic1.has_key(p.sku):
【讨论】:
in 多年来一直是首选方式
if dic1.get(p.sku) is None: 与您正在尝试的完全等效,除了没有 KeyError - 因为如果密钥不存在,get 返回 None 或 None 有显式存储为相应的值,这可以用作“逻辑删除”键而不实际更改键集的一种方式(如果您在 dict 上循环,则不能更改键集,也不是在没有锁等的情况下这样做是线程安全的线程安全)。
除非您有这种要求,否则if p.sku not in dic1:,正如@Michael 所建议的那样,在所有方面都非常可取(更快、更简洁、更易读等等;-)。
【讨论】: