同理,不可哈希的数据类型,即可变的数据结构 (字典dict,列表list,集合set)
对于可变对象而言,比如一个列表,更改列表的值,但是对象的地址本身是不变的,也就是说不同的Key,映射到了相同的Value...三、为什么字典 key 必须是不可变的(可哈希hashable)?
3.1 字典如何在 CPython 中实现?
CPython 的字典实现为可调整大小的哈希表。...在上面的两行代码中,第一行中的key是一个列表对象[1,2],第二行中要访问的的时候的那个key虽然也是[1,2],但是由于列表list是可变对象,虽然这两行的列表值一样,但是他们并不是同一个对象,它们的存储地址是不一样的...将上面例子中的列表[1,2]换成元组(1,2),先来看一个简单的例子:
d = {(1, 2): '100'} # 构造一个字典,key是元组(1,2) ,是一个不可变对象,是可哈希的
print(d...在上面的两行代码中,第一行中的key是一个元组对象(1,2),第二行中要访问的的时候的那个key也是(1,2),但是由于元组tuple是不可变对象,那么这两行的元组值一样,所以它们的存储地址是一样的,即