這兩個都是一樣的結果呢z = {'a': 1, 'b': 2, 'c':3}'a' in z
z.has_key('a')
2 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
#src/Python-2.6.8/Objects/dictobject.cstatic PyObject *dict_has_key(register PyDictObject *mp, PyObject *key){ if (PyErr_WarnPy3k("dict.has_key() not supported in 3.x; " "use the in operator", 1) < 0) return NULL; return dict_contains(mp, key); }

青春有我
TA貢獻1784條經驗 獲得超8個贊
從運算角度來說,使用in更快
> python2 -mtimeit -s'd=dict.fromkeys(range(99))' '12 in d'10000000 loops, best of 3: 0.0374 usec per loop> python2 -mtimeit -s'd=dict.fromkeys(range(99))' 'd.has_key(12)'10000000 loops, best of 3: 0.0719 usec per loop
這也是為什么使用in更加好的原因
添加回答
舉報
0/150
提交
取消