python中的可哈希和不可哈希

python 中的每一个对象都有一个哈希值,哈希值是一个固定长度的整数,它通常用于快速比较对象的相等性。

如果在对象的生命周期里该对象的哈希值从未改变,那么这个对象是可哈希的(hashable),也称为不可变的。如果一个对象的哈希值是不稳定的,则为不可哈希,是可变的。

可以用hash函数检测一个对象是否是可哈希的。在Python中,如果一个对象是可哈希的,那么我们可以使用内置的hash()函数来获取其哈希值。如果一个对象是不可哈希的,那么调用hash()函数将会出现TypeError。

可哈希指的是一个对象是否可以被哈希函数处理并得到一个哈希值,该值在对象的生命周期内是不变的。

一般来说,不可变的数据类型(如整数int、浮点数float、布尔值bool、字符串str、元组tuple等)是可哈希的,而可变的数据类型(如列表list、字典dict、集合set等)通常是不可哈希的。

# -*- coding: utf-8 -*-value = 1
try:ret = hash(value)print(ret)
except TypeError as e:print(f"{value} not hash: ", e)data = [1, 2, 3]
try:ret = hash(data)print(ret)
except TypeError as e:print(f"{data} not hash: ", e)"""
运行结果:
1
[1, 2, 3] not hash:  unhashable type: 'list'
"""

注意,如果自定义类的实例是不可变的,并且实现了hash()方法和eq()方法,那么这个类的实例也是可哈希的。


end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一篇【传奇开心果系列】Python的跨平台开发工具beeware技术点案例示例:使用beeware实现跨平台开发,从hello world开始

传奇开心果博文系列 系列博文目录Python的跨平台开发工具beeware技术点案例示例系列 博文目录前言一、BeeWare套件主要功能介绍二、Toga相对于其他Python UI库具有的优势介绍三、使用toga开发安卓手机应用hello world步骤和示例代码四、使用toga写一个iOS 苹果手机应用hello wo…

【文末附gpt升级方案】亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索

亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索 摘要 本文探讨了亚马逊云部门与人工智能初创公司Hugging Face的合作,旨在通过定制计算芯片Inferentia2在亚马逊网络服务(AWS)上更低成本地运行数千个AI模型。文章首…

web前端之vue的生命周期、unmounted、onUnmounted、activated、deactivated、keep-alive

MENU 前言vue2vue3activated和deactivated 前言 在Vue.js中,组件生命周期钩子函数定义了在组件的不同阶段执行的操作。Vue 2.x和Vue 3.x之间的生命周期钩子函数有一些区别。 vue2 1、beforeCreate: 在实例初始化之后,数据观测(data observer)和event/wat…

RDD介绍

RDD设计背景 在实际应用中,存在许多迭代式计算,这些应用场景的共同之处是 : 不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入. 而目前的MapReduce框架都是把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销; 如果能将结果保存在内…

为何程序员35岁就开始被嫌弃了?程序员该如何避免中年危机?

文章目录 一、为何程序员35岁就开始被嫌弃了?1、技术更新迅速2、职业发展瓶颈3、成本考虑4、年龄歧视5、市场供需变化6、个人因素 二、程序员该如何避免中年危机?1、持续学习与技能更新2、拓展技术广度与深度3、提升软技能4、关注行业趋势与市场变化5、建…

vue3 input输入框输入限制(数字)

输入框限制输入的内容格式&#xff0c;如&#xff08;金额&#xff0c;数字&#xff09; 金额限制小数点后2位数 <el-input placeholder"请填写费用" v-model"formMoney.total_money" keyup"formMoney.total_money checkPrice(formMoney.total_…

20240521(代码整洁和测试入门学习)

测试: 1.测试工程师、测试工具开发工程师、自动化测试工程师。 python&#xff1a; 1、发展背景和优势&#xff1b; 2、开始多需的工具 interpreter(解释器) refactor(重构) 2、变量和注释的基础语法 3、输入输出 i 1 for i in range(1, 11): print(i, end ) 不换行打印…

jupyter notebook 实现联邦学习模型

联邦学习(Federated Learning)是一种机器学习框架,它允许多个参与方(例如,移动设备或服务器)在本地数据集上训练模型,而无需将数据集中到一个位置。这有助于保护数据隐私,并允许在分布式环境中进行模型训练。 要在Jupyter Notebook中实现联邦学习模型,你可以遵循以下…

性能大爆炸!为你的Matomo换一个高性能的环境!

随着我的 Matomo 越来越大&#xff0c;功能需求的增多&#xff0c;插件也变得越来越多&#xff0c;使用传统的LNMP架构或者LAMP架构都会发现性能正在急剧下级&#xff0c;为此&#xff0c;我们发现了使用FrankenPHP&#xff08;以下简称FPHP&#xff09;的方案 首先&#xff0…

Android kotlin协程

说明 可代替线程整异步可控制&#xff0c;灵活 &#xff08;控制优先级&#xff0c;内存占用等&#xff09;速度快 效率高有数量上限 使用 runBlocking 一般用于测试 不建议使用GlobalScope.launch 全局的 生命周期跟随application 不建议使用CoroutineScope(job) 用 基本使…

樱花下落的速度是每秒5厘米,我们的心又该以什么速度去接近呢

樱花下落的速度是每秒五厘米。5年前第一次接触秒速五厘米的时候&#xff0c;我还在念初中&#xff0c;那时候的我尚且理解不了作品里的太多东西&#xff0c;只是为那辆列车隔开了明里和贵树感到悲伤&#xff0c;为他们二人那段无疾而终的感情感到遗憾。五年后再一次重温&#x…

GEE批量导出逐日、逐月、逐季节和逐年的遥感影像(以NDVI为例)

影像导出 1.逐日数据导出2.逐月数据导出3.季节数据导出4.逐年数据导出 最近很多小伙伴们私信我&#xff0c;问我如何高效导出遥感数据&#xff0c;从逐日到逐季度&#xff0c;我都有一套自己的方法&#xff0c;今天就来和大家分享一下&#xff01;   &#x1f50d;【逐日导出…

Scala 入门介绍和环境搭建

一、简介 Scala 是一门以 Java 虚拟机&#xff08;JVM&#xff09;为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言 (静态语言需要提前编译&#xff0c;如&#xff1a;Java、c、c 等&#xff0c;动态语言如&#xff1a;js)Scala 是一门多范式的编程…

【介绍下Pwn,什么是Pwn?】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

CSS3文字与字体

文字与字体 @font-face 用途:定义一种自定义字体,使其可以在网页中使用。通过@font-face规则,可以指定字体名称、来源(通常是URL)以及字体的各种变体(如常规、粗体、斜体等)。 @font-face {font-family: MyCustomFont;src: url(mycustomfont.woff2) format(woff2

冯喜运:5.25黄金价格和原油价格加速看跌?未来如何走势?

【黄金消息面分析】&#xff1a;本周黄金市场经历剧烈波动&#xff0c;金价创下五个半月来最糟糕的单周表现&#xff0c;尽管周五因美元下跌小幅回升。美联储的鹰派立场和美国经济数据强劲削弱了降息预期&#xff0c;导致金价承压。然而&#xff0c;分析师对未来金价走势看法不…

Rolla‘s homework:Image Processing with Python Final Project

对比学习Yolo 和 faster rcnn 两种目标检测 要求 Image Processing with Python Final Project Derek TanLoad several useful packages that are used in this notebook:Image Processing with Python Final Project Project Goals: • Gain an understanding of the object …

leetcode 1049.最后一块石头的重量II

思路&#xff1a;01背包 其实这道题我们可以转化一下&#xff0c;乍一看有点像区间dp&#xff0c;很像区间合并那种类型。 但是&#xff0c;后来发现&#xff0c;这道题的精髓在于你如何转成背包问题。我们可以把这个石头分成两堆&#xff0c;然后求出来这两堆的最小差值就行…

使用git生成SSH公钥,并设置SSH公钥

1、在git命令行里输入以下命令 ssh-keygen -t rsa 2、按回车&#xff0c;然后会看到以下字眼 Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa) 例&#xff1a; 3、继续回车&#xff0c;然后会看到以下字眼 Enter…

【面试干货】数据库乐观锁,悲观锁的区别,怎么实现

【面试干货】数据库乐观锁&#xff0c;悲观锁的区别&#xff0c;怎么实现 1、乐观锁&#xff0c;悲观锁的区别2、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、乐观锁&#xff0c;悲观锁的区别 悲观锁&#xff08;Pessimistic Lo…