key()'或'in'?

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

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

要么:

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

in肯定更pythonic。

实际上, has_key()在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中,更快的解决方案更优雅,并且Pythonic; 这就是为什么-mtimeit是如此有用 - 它不仅仅是在这里和那里节省了一百纳秒! - )


根据python文档:

has_key()已弃用,以支持key in dkey in d

链接地址: http://www.djcxy.com/p/23935.html

上一篇: key()' or 'in'?

下一篇: Image cropping is not working in android 7.0 and higher version