我应该在Python字典中使用'has_key()'还是'in'?

36 浏览
0 Comments

我应该在Python字典中使用'has_key()'还是'in'?

这个问题已经在这里有了答案:

检查给定的键是否已经存在于字典中

给定:

>>> d = {'a': 1, 'b': 2}

以下哪种方法是检查\'a\'是否在字典d中最好的方法?

>>> 'a' in d
True

>>> d.has_key('a')
True

admin 更改状态以发布 2023年5月24日
0
0 Comments

in 赢得了无可挑剔的胜利,不仅仅是因为它更加优雅(并且不会被弃用;-),而且因为它在性能方面也更加优秀,例如:

$ python -mtimeit -s'd=dict.fromkeys(range(99))' '12 in d'
10000000 loops, best of 3: 0.0983 usec per loop
$ python -mtimeit -s'd=dict.fromkeys(range(99))' 'd.has_key(12)'
1000000 loops, best of 3: 0.21 usec per loop

虽然以下观察不总是正确的,但你会发现通常情况下,在Python中,速度更快的解决方案更加优雅和Pythonic;这就是为什么 -mtimeit 如此有用 -- 它不仅仅是在节省一些耗时百分之几的时间!-)

0
0 Comments

in在Python中更具有语言特色。

实际上,在Python 3.x中,has_key()已经被删除

0