为什么这两个都是一样的结果呢?

这两个都是一样的结果呢

z = {'a': 1, 'b': 2, 'c':3}'a' in z
z.has_key('a')


翻翻过去那场雪
浏览 98回答 2
2回答

幕布斯7119047

#src/Python-2.6.8/Objects/dictobject.cstatic&nbsp;PyObject&nbsp;*dict_has_key(register&nbsp;PyDictObject&nbsp;*mp,&nbsp;PyObject&nbsp;*key){&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(PyErr_WarnPy3k("dict.has_key()&nbsp;not&nbsp;supported&nbsp;in&nbsp;3.x;&nbsp;" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"use&nbsp;the&nbsp;in&nbsp;operator",&nbsp;1)&nbsp;<&nbsp;0)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;NULL;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;dict_contains(mp,&nbsp;key); }

青春有我

从运算角度来说,使用in更快>&nbsp;python2&nbsp;-mtimeit&nbsp;-s'd=dict.fromkeys(range(99))'&nbsp;'12&nbsp;in&nbsp;d'10000000&nbsp;loops,&nbsp;best&nbsp;of&nbsp;3:&nbsp;0.0374&nbsp;usec&nbsp;per&nbsp;loop>&nbsp;python2&nbsp;-mtimeit&nbsp;-s'd=dict.fromkeys(range(99))'&nbsp;'d.has_key(12)'10000000&nbsp;loops,&nbsp;best&nbsp;of&nbsp;3:&nbsp;0.0719&nbsp;usec&nbsp;per&nbsp;loop这也是为什么使用in更加好的原因
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python