这两个都是一样的结果呢
z = {'a': 1, 'b': 2, 'c':3} 'a' in z z.has_key('a')
官方文檔推薦用 key in dict 的語法,因為它更短更通俗易懂。has_key是老舊遺留的api,為了支持2.2之前的代碼留下的。Python3已經刪除了該函數。
樓上說得都夠詳細了,我就貼段代碼吧:
#src/Python-2.6.8/Objects/dictobject.c static 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); }
一樣,in更有python的感覺,has_key已經在python3中去掉了:http://docs.python.org/3.1/whatsnew/3...
in
has_key
官方文檔推薦用 key in dict 的語法,因為它更短更通俗易懂。has_key是老舊遺留的api,為了支持2.2之前的代碼留下的。Python3已經刪除了該函數。
樓上說得都夠詳細了,我就貼段代碼吧:
一樣,
in
更有python的感覺,has_key
已經在python3中去掉了:http://docs.python.org/3.1/whatsnew/3...