Python中字典的key可以是什么类型?

字典的key值是可哈希的,字典的存储结构是哈希表,这样字典的查找性能就会很好。所以字典的key必须是可哈希的。

可哈希的意思是:不可变的,可变的数据类型不可哈希,列表(list),字典(dict),集合(set)可变,字母、字符串、数字、元组不可变。

所以结论为:

一个对象能不能作为字典的key,就取决于其有没有__hash__方法。所以所有python自带类型中,除了list、dict、set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当key。

查看源代码可以看到object对象是定义了__hash__方法的,

而list、set和dict都把__hash__赋值为None了

image.png

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部