鉴于:
>>> d = {'a': 1, 'b': 2}
以下哪项是检查 'a'
是否在 d
中的最佳方法?
>>> 'a' in d
True
>>> d.has_key('a')
True
原文由 igorgue 发布,翻译遵循 CC BY-SA 4.0 许可协议
鉴于:
>>> d = {'a': 1, 'b': 2}
以下哪项是检查 'a'
是否在 d
中的最佳方法?
>>> 'a' in d
True
>>> d.has_key('a')
True
原文由 igorgue 发布,翻译遵循 CC BY-SA 4.0 许可协议
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
有用——它 不仅仅是 在这里和那里节省一百纳秒!-)
原文由 Alex Martelli 发布,翻译遵循 CC BY-SA 2.5 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
in
绝对更pythonic。事实上
has_key()
在 Python 3.x 中被删除了。