我应该在Python字典中使用'has_key()'还是'in'?
我应该在Python字典中使用'has_key()'还是'in'?
这个问题已经在这里有了答案:
给定:
>>> d = {'a': 1, 'b': 2}
以下哪种方法是检查\'a\'
是否在字典d
中最好的方法?
>>> 'a' in d True
>>> d.has_key('a') True
admin 更改状态以发布 2023年5月24日
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
如此有用 -- 它不仅仅是在节省一些耗时百分之几的时间!-)