![](https://bookbk.img.zhangyue01.com/group61/M00/6C/A2/CmQUOF-OvTOECtpcAAAAANQ5foY542013107.png?v=RgTZneOn&t=CmQUOF-OvTM.)
2.6 哈希运算
前面介绍了可变序列类型列表、不可变序列类型元组及 range,后面还会学习更多的可变类型和不可变类型。Python 界定一个数据类型是否可变主要是通过考察该类型数据是否能够进行哈希运算。能够进行哈希运算的类型认为是不可变类型,否则认为是可变类型。
哈希运算可以将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是对数据的一种有损且紧凑的表示形式。Python 提供了一个内置的哈希运算函数hash(),它可以对固定数据类型产生一个哈希值 [5] 。
![](https://bookbk.img.zhangyue01.com/group61/M00/20/94/CmRabl-OvTKEEPurAAAAAKUKOB0428266851.jpg?v=KMGT12ka&t=CmRabl-OvTI.)
![](https://bookbk.img.zhangyue01.com/group61/M00/20/87/CmRaIV-OvTKESXzYAAAAAHKuL0M139067579.jpg?v=THflXCW6&t=CmRaIV-OvTI.)
说明:每次启动 IDLE 调用 hash(),即使对同一个数据进行哈希运算,哈希的结果也可能不同。