python中的可哈希和不可改变性
来源:互联网 发布:qq飞车通灵剃刀数据 编辑:程序博客网 时间:2024/06/02 12:58
1.可哈希(hashable)和不可改变性(immutable)
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以可哈希的对象可以通过哈希值进行对比,也可以作为字典的键值和作为set函数的参数。所有python中所有不可改变的的对象(imutable objects)都是可哈希的,比如字符串,元组,也就是说可改变的容器如字典,列表不可哈希(unhashable)。我们用户所定义的类的实例对象默认是可哈希的(hashable),它们都是唯一的,而hash值也就是它们的id()。
2. 哈希
它是一个将大体量数据转化为很小数据的过程,甚至可以仅仅是一个数字,以便我们可以用在固定的时间复杂度下查询它,所以,哈希对高效的算法和数据结构很重要。
3. 不可改变性
它指一些对象在被创建之后不会因为某些方式改变,特别是针对任何可以改变哈希对象的哈希值的方式
4. 联系:
因为哈希键一定是不可改变的,所以它们对应的哈希值也不改变。如果允许它们改变,,那么它们在数据结构如哈希表中的存储位置也会改变,因此会与哈希的概念违背,效率会大打折扣
1 0
- python中的可哈希和不可改变性
- python(哈希性hashable和不可改变性imutable)
- python不可变性和可变性的区别
- python中数据类型(对象)的可变和不可变性
- JavaScript中的不可变性(Immutability)
- 字符串的相等性和不可变性
- String 的相等性和不可变性
- 10.线程安全和不可变性
- C#4.0中的新功能:协变性和逆变性
- Python变量赋值原理,不可变性,缓存机制
- Java中的String的 方法归类 及其 不可变性
- 并发与不可变性
- 字符串具有不可变性
- 字符串的不可变性
- String的不可变性
- 并发与不可变性
- String的不可变性
- String的不可变性
- React内置类型
- 性能测试基础知识(概念)
- 关于VOLTE 资源预留
- Jsp中的动作标识
- 凸优化的使用方面和定义
- python中的可哈希和不可改变性
- 图的割点,割边
- 学习C++/C的宏与for循环的结合
- 在一个方法执行完后开启一个线程
- MATLAB图像变换之术
- Centos7 yum 安装 mysql
- Source Insight多行注释宏定义
- MacOS 下 Nginx 安装记录
- Android选择图片、拍照、裁剪 注意事项