我应该在Python字典上使用“has_key()”还是“in”?
2022-09-05 01:07:23
鉴于:
>>> d = {'a': 1, 'b': 2}
以下哪项是检查是否在 的最佳方法 ?'a'
d
>>> 'a' in d
True
>>> d.has_key('a')
True
鉴于:
>>> d = {'a': 1, 'b': 2}
以下哪项是检查是否在 的最佳方法 ?'a'
d
>>> 'a' in d
True
>>> d.has_key('a')
True
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