TypeError: unhashable type
TypeError: unhashable type
TypeError: unhashable type: ‘list’ 通常意味着您正在尝试使用列表作为哈希参数。这意味着当您尝试散列一个 不可散列的对象 时,它将导致错误。例如。当您使用列表作为 字典中的键时,这是无法完成的,因为无法对列表进行哈希处理。解决此问题的标准方法是将 list 转换为 tuple。
例子
my_dict = {'name': 'John', [1,2,3]:'values'}
print(my_dict)
输出
Traceback (most recent call last):
File "sample.py", line 3, in <module>
my_dict = {'name': 'John', [1,2,3]:'values'}
TypeError: unhashable type: 'list'
此错误表明 my_dict 键 [1,2,3] 是 List 并且 List 不是 Python中的可散列类型。字典键必须是不可变类型,而 list 是可变类型。
修复:将列表转换为元组
如果要将列表作为键放入 字典中,则必须将它们更改为元组。
my_dict = {'name': 'John', tuple([1,2,3]):'values'}
print(my_dict)
输出
{'name': 'John', (1, 2, 3): 'values'}
hash() 是一个内置的 python 方法,用于返回一个 唯一 的数字。这可以应用于任何用户定义的对象,一旦初始化就不会改变。此属性主要用于 字典键。
可散列对象的示例:
int, float, decimal, complex, bool, string, tuple, range, frozenset, bytes |
---|
Unhashable 对象的示例:
list, dict, set, bytearray, user-defined classes |
---|
元组和列表(tuple、list)
尽管 元组 可能看起来类似于列表,但它们通常用于不同的情况和不同的目的。元组是 不可变的,通常包含通过解包或索引访问的异构元素序列 。列表是可变的,它们的元素通常是同质的,可以通过遍历列表来访问。
散列(Hashing)
散列是计算机科学中的一个概念,用于创建 高性能的伪随机访问数据结构,其中大量数据将被快速存储和访问。 不可变对象或无法更改的对象是可 散列 的,并且它们具有一个永远不会改变的唯一值。散列函数是一个函数,它接受一个对象,比如一个字符串,比如“Java”,并返回一个固定大小的代码,假设返回值是一个 整数。
TypeError: unhashable type相关推荐
- TypeError: unhashable type: 'dict'
TypeError: unhashable type: 'dict' 错误代码: def update_data(uri_path,value):updateBody = {{"query& ...
- 成功解决TypeError: unhashable type: 'numpy.ndarray'
成功解决TypeError: unhashable type: 'numpy.ndarray' 目录 解决问题 解决思路 解决方法 解决问题 TypeError: unhashable type: ' ...
- typeError: unhashable type: 'list’问题分析
list常用去重方法 在python中使用list存储数据时有时候需要list中的数据不能重复,这样就需要用到去重操作,因为set是会自动把重复的内容去掉的,所以常用的简单去重方法是先将list转为s ...
- 机器学习实战:TypeError: unhashable type: 'matrix'
在<机器学习实战>的第9章树回归中的源代码错误: 既是: TypeError: unhashable type: 'matrix' matrix类型不能被hash 解决过程: In [22 ...
- TypeError: unhashable type: 'list'
在使用list创建set的时候,一直出现TypeError: unhashable type: 'list',这种错误,检查代码,并没有出错,只可能是有些未知的错误,之前可能没有遇到过,百度后发现,原 ...
- Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
list 是可变类型,无法进行 hash,或者说凡可变类型都无法进行 hash: 1. list 作为字典(dict)的 key 注意字典,无论是 Python 2.x 还是 Python 3.x 都 ...
- Python debug——TypeError: unhashable type(list/set/dict)
正如错误提示,list/set/dict 均不可被哈希. 这一异常通常出现在,调用 set(-) 来构造一个 set (集合类型)时,set() 需要传递进来可哈希的元素(hashable items ...
- 【解决报错原因分析】画图plt.contourf(X,Y,Z)报错TypeError: unhashable type: ‘numpy.ndarray‘(含详细示例讲解)
今天简化画图代码的时候发现了很奇怪的报错现象,经过一系列尝试找到了根源,希望帮助后来人,主要问题出现在如下语句中(为了体现问题.方便比对,特意在这改变了x为xx,如果你不想看这冗长的示例,可以直接按照 ...
- list转set遇坑:TypeError: unhashable type: ‘list‘
由list组成的list(list套list)是不能转set的,形如: datalist = [[a],[b]] 转set时报错:TypeError: unhashable type: 'list' ...
最新文章
- 【win】黑框中常用的命令
- 普华永道:人工智能将重塑职位格局并与物联网合并
- MariaDB 求和,最大值,最小值,平均数
- My97DatePicker日历插件
- 用户体验——减少用户的操作!
- 私有云Opetstack的创建与运用
- 基于.NET2.0的System.Net.Mail发送邮件Demo
- find_first_of()和 find_last_of() 【获取路径、文件名】
- 渗透测试岗位面试题(重点:渗透测试思路)
- 图书馆用文本文件booklist.txt记录图书的书目,其中包括book1,book2,.....,book10.现在又要采购一批新书,编写程序将新的书目添加到目录中。
- [TCL]Tcl语言基礎教程(一)
- 南开大学校园邮箱pop3地址
- yxy小蒟蒻的201117总结
- admincp db.php,${discuz-admincp_db.php-vul} 命令执行漏洞 修复方案
- 计算机硬盘中有许多碎片,电脑磁盘碎片整理有什么用(需要经常清理吗)
- matlab gui双音拨号,电子信息毕业设计---双音多频拨号系统的MATLAB仿真实现
- ARM与Intel芯片性能不严谨比较
- Chapter9.2:线性系统的状态空间分析与综合(上)
- Unity判断手势的滑动方向,单点触摸和多点触摸,并获取刚触摸以及触摸结束事的坐标
- c语言指针数组分配内存,指针数组数组指针的分配内存及函数参数 C语言版