python(哈希性hashable和不可改变性imutable)
来源:互联网 发布:中小企业员工流失数据 编辑:程序博客网 时间:2024/05/17 02:29
什么是可哈希的(hashable)不该改变的(imutable)?
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以可哈希的对象可以通过哈希值进行对比,也可以作为字典的键值和作为set函数的参数。所有python中所有不可改变的的对象(imutable objects)都是可哈希的,比如字符串,元组,也就是说可改变的容器如字典,列表不可哈希(unhashable)。我们用户所定义的类的实例对象默认是可哈希的(hashable),它们都是唯一的,而hash值也就是它们的id()。
哈希(散列?whatever)是一个将大体量数据转化为很小数据的过程,甚至可以仅仅是一个数字,以便我们可以用在固定的时间复杂度下查询它,所以,哈希对高效的算法和数据结构很重要。
不可改变性是指一些对象在被创建之后不会因为某些方式改变,特别是针对任何可以改变哈希对象的哈希值的方式。
两者相联系是因为哈希键值一定是不可改变的,所以它们对应的哈希键值也不改变。如果允许它们改变,,那么它们在数据结构如哈希表中的存储位置也会改变,因此会与哈希的概念违背,效率会大打折扣。
阅读全文
0 0
- python(哈希性hashable和不可改变性imutable)
- python中的可哈希和不可改变性
- python中数据类型(对象)的可变和不可变性
- python不可变性和可变性的区别
- 线程安全和不可变性(Thread Safety and Immutability)
- EffectiveJava(15)强化对象和域的不可变性
- Python 里 immutable和hashable的概念
- 字符串的相等性和不可变性
- String 的相等性和不可变性
- 10.线程安全和不可变性
- Python变量赋值原理,不可变性,缓存机制
- 并发与不可变性
- 字符串具有不可变性
- 字符串的不可变性
- String的不可变性
- 并发与不可变性
- String的不可变性
- String的不可变性
- 12、Oracle:order by 排序和限制条件
- 详解Hive-CliDriver续——细读Hive源码(三)
- Linq示例
- 微信小程序--获取地理位置名称
- Struts2工作原理以及核心思想
- python(哈希性hashable和不可改变性imutable)
- 如何从CentOS官网下载我们想要的版本
- 静态html实现倒计时
- iOS开发 ☞ 初识RAC
- UIScrollView的自动滑动,使用NSTimer定时器实现
- 数据专家必知必会的 7 款 Python 工具
- Macos 使用dd命令刻盘做u盘启动ubuntu系统
- 【今日荐文】你欠缺的是赶紧静下心来好好学习---猿哥
- 数组的常见操作