1. 字典字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、只含不可变类型元素的元组(1,2,3,’abc’)、实现__hash__()方法的自定义对象(因为__hash__()须返回一个整数,否则会出现异常:TypeError: an integer is required)。可以用hash(obj)检测对象是否是可哈希的。
>>> class HashEnable(object):
... def __hash__(self):
... return1
>>> he = HashEnable()
>>> hash(he)
1
>>> d = {he:1}
>>> d = {[‘1‘,2]:2}
Traceback (most recent call last):
File "<stdin>", line 1, in <module> TypeError: unhashable type: ‘list‘