Lesson 2#05 hash “散列”

Hash,一般翻译为“散列”或“哈希”,就是把任意长度的输入,通过散列算法变成固定长度的输出,不同的输入可能会散列成相同的输出(hash冲突),所以不可能从散列值来唯一的确定输入值,简单的说就是一种将任意长度的消息压缩到某一个固定长度的消息摘要的函数。

被Hash的值类型必须是不可变的

不可变类型:数字、字符串、元组

可变类型:列表

names = ("suyp","lirs","liuzhen")#元组
lnames = ['suyp','lirs']#列表
print(hash(names))
#元组可hash
print(hash("suyp"))
#字符串可hash
print(hash("11111"))
#数字可hash
print(hash(lnames))
#列表不可hash
#执行结果
>>>1828262381860376343
>>>-4094679578551424580
>>>2497121274042300734
>>>7112949143093571634
>>>    print(hash(lnames))
>>>TypeError: unhashable type: 'list'
#不支持的类型:列表
原文地址:https://www.cnblogs.com/wudtime/p/8653730.html