什么是可哈希的(hashable)
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以可哈希的对象可以通过哈希值进行对比,也可以作为字典的键值和作为set函数的参数。所有python中所有不可改变的的对象(imutable objects)都是可哈希的,比如字符串,元组,也就是说可改变的容器如字典,列表不可哈希(unhashable)。我们用户所定义的类的实例对象默认是可哈希的(hashable),它们都是唯一的,而hash值也就是它们的id()。
哈希(散列?whatever)是一个将大体量数据转化为很小数据的过程,甚至可以仅仅是一个数字,以便我们可以用在固定的时间复杂度下查询它,所以,哈希对高效的算法和数据结构很重要。
转载于:https://www.cnblogs.com/sea-stream/p/10573034.html
什么是可哈希的(hashable)相关推荐
- 哈希表(散列表)基础概念与经典题目(Leetcode题解-Python语言)之中——实际应用
上一节介绍了哈希表的原理与设计方法,这一节则直接python中现有的哈希表类型:哈希集合 set(集合)和哈希映射 dict(字典)来解决实际应用(刷题). 零.概念 在介绍实际应用之前,有一个概念我 ...
- Python3-Cookbook总结 - 第一章:数据结构和算法
第一章:数据结构和算法 Python 提供了大量的内置数据结构,包括列表,集合以及字典.大多数情况下使用这些数据结构是很简单的. 但是,我们也会经常碰到到诸如查询,排序和过滤等等这些普遍存在的问题. ...
- Python高手必读,做一个精通规则的玩家
编程,其实和玩电子游戏有一些相似之处.你在玩不同游戏前,需要先学习每个游戏的不同规则,只有熟悉和灵活运用游戏规则,才更有可能在游戏中获胜. 而编程也是一样,不同编程语言同样有着不一样的"规则 ...
- 深入研究Python 世界的规则,我的薪资直接翻倍
前言 编程,其实和玩电子游戏有一些相似之处.你在玩不同游戏前,需要先学习每个游戏的不同规则,只有熟悉和灵活运用游戏规则,才更有可能在游戏中获胜. 而编程也是一样,不同编程语言同样有着不一样的" ...
- python出现的次数最多的元素_【Python 秘籍】序列中出现次数最多的元素
问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案. ...
- 第二章——Swift语言
Swift是苹果于2014年推出的一种新语言.Swfit 将替换 Objective-C,成为 iOS 和 Mac 的推荐开发语言.在本章中,您将重点学习Swift的基础知识. 你不会学到所有的知识, ...
- pythonset是什么意思_Python 中 set 是什么?为何要是用它?
原标题:Python 中 set 是什么?为何要是用它? Python 中 set 是什么?为何要是用它?Python 中 set 是什么?为何要是用它? Python Sets: What, Why ...
- python集合是什么意思_Python集合是什么,为什么应该使用以及如何使用?
Python集合是什么,为什么应该使用以及如何使用?-1.jpg (34.56 KB, 下载次数: 0) 2018-7-30 18:07 上传 Python集合是什么,为什么应该使用以及如何使用?-2 ...
- 集合4:方法-仅适用于set
目录 1. s.update(*others) 2. s.intersection_update(*others) 3. s.difference_update(*others) 4. s.symme ...
- 第十七周-day72-Python编程基础day04
老男孩教育-张导博客:https://www.cnblogs.com/Neeo/articles/11204572.html 1.列表 资料连接:https://www.cnblogs.com/Nee ...
最新文章
- 重新更新了,账号都丢了,重新找回的
- Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)
- 3.SFB标准版前端安装
- 使用.NET Core创建服务监视器应用程序
- 架构设计工作笔记002---微服务架构理论-扩展立方体
- 卷积神经网络的前世今生
- Numpy系列(六)常用的数组合并操作
- 【光学】基于matlab GUI光栅实验【含Matlab源码 1176期】
- 小榕密码管家xp 绿色
- yum指令安装失败,或导致图形界面黑屏如何解决
- Java实现斯皮尔曼相关系数(Spearman)及T检验
- pyecharts(9)-动态可视化-树形图-思维导图
- Java实现牛牛算法详解
- 记一次修复Mac和Win7双系统启动菜单的经历
- matlab 矩阵增加行,MATLAB 中 如何在矩阵中插入1行
- 美化版缤纷彩色文字广告代码文字+网站添加AD教程
- 无法获取目标服务器证书的SSL指纹--VMware VCSA
- linu系统初始化配置
- Leecode DFS深度优先搜索
- 蓝桥杯JAVA数列求和
热门文章
- php去掉 部分字符,输出,php如何去除某个字符
- 黑群晖 linux 修改参数,黑群晖 DS918+ 修改引导参数隐藏引导盘和数据盘
- html JS实现下拉菜单,vue.js怎么实现下拉框
- java爬虫框架_Python,爬虫开发的不二选择
- 钣金cad插件_ug,CAD,SolidWorks,钣金??????非标等设计
- delphi 获取webbrowser文本框id内数值_分布式 ID 生成策略
- git 安装_Windows系统Git安装教程(详解Git安装过程)
- iphone照片永久删除怎么恢复_微信数据怎么永久删除不被恢复?只删除聊天记录没用,打开这里彻底删除!...
- java的历史_Java的历史
- Node JS环境设置– Node.js安装