字典有关键方法吗?我正在检查'无',我遇到了问题

时间:2010-08-02 23:48:58

标签: python dictionary

我有2个词典,我想检查一个词是否在任何一个词典中。

我在尝试:

if dic1[p.sku] is not None:

我希望无论如何都有一个hasKey方法。

如果找不到密钥,我收到错误,为什么会这样?

3 个答案:

答案 0 :(得分:13)

使用in运算符:

if p.sku in dic1:
    ...

(顺便提一下,您也可以使用has_key方法,但最好使用in。)

答案 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建议的那样,在所有飞机上都是非常受欢迎的(更快,更简洁,更易读等等; - )。