python - 判断是否在字典里用in还是用has_key()
巴扎黑
巴扎黑 2017-04-17 11:08:18
0
3
883

这两个都是一样的结果呢

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

全員に返信(3)
洪涛

官方文档推荐用 key in dict 的语法,因为它更短更通俗易懂。has_key是老旧遗留的api,为了支持2.2之前的代码留下的。Python3已经删除了该函数。

いいねを押す +0
PHPzhong

楼上说得都够详细了,我就贴段代码吧:

#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);
}
いいねを押す +0
小葫芦

一样,in更有python的感觉,has_key已经在python3中去掉了:http://docs.python.org/3.1/whatsnew/3...

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!