has_key()或 in?


我不知道什么是更好的做法:

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

或:

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

中的绝对是pythonic。

实际上, has_key()在Python中被删除3.X

中胜出,不仅在优雅(而不是被弃用;-),而且在性能上,例如:

$ 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是有用的

  • 它不是_关于在这里和那里节省一百纳秒! - )

未经作者同意,本文严禁转载,违者必究!