我应该在Python dict上使用“has_key()”还是“in”?

2024-04-24 22:05:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道什么更好:

d = {'a': 1, 'b': 2}
'a' in d
True

或:

d = {'a': 1, 'b': 2}
d.has_key('a')
True

Tags: keyintruehas
3条回答

in肯定更像Python

事实上^{} was removed in Python 3.x

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中,更快的解决方案更优雅、更具Python风格;这就是为什么-mtimeit如此有用的原因--它不仅仅是在这里和那里节省100纳秒

根据python docs

has_key() is deprecated in favor of key in d.

相关问题 更多 >