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相关推荐

  1. TypeError: unhashable type: 'dict'

    TypeError: unhashable type: 'dict' 错误代码: def update_data(uri_path,value):updateBody = {{"query& ...

  2. 成功解决TypeError: unhashable type: 'numpy.ndarray'

    成功解决TypeError: unhashable type: 'numpy.ndarray' 目录 解决问题 解决思路 解决方法 解决问题 TypeError: unhashable type: ' ...

  3. typeError: unhashable type: 'list’问题分析

    list常用去重方法 在python中使用list存储数据时有时候需要list中的数据不能重复,这样就需要用到去重操作,因为set是会自动把重复的内容去掉的,所以常用的简单去重方法是先将list转为s ...

  4. 机器学习实战:TypeError: unhashable type: 'matrix'

    在<机器学习实战>的第9章树回归中的源代码错误: 既是: TypeError: unhashable type: 'matrix' matrix类型不能被hash 解决过程: In [22 ...

  5. TypeError: unhashable type: 'list'

    在使用list创建set的时候,一直出现TypeError: unhashable type: 'list',这种错误,检查代码,并没有出错,只可能是有些未知的错误,之前可能没有遇到过,百度后发现,原 ...

  6. Python 2.x vs Python 3.x(四)—— TypeError: unhashable type

    list 是可变类型,无法进行 hash,或者说凡可变类型都无法进行 hash: 1. list 作为字典(dict)的 key 注意字典,无论是 Python 2.x 还是 Python 3.x 都 ...

  7. Python debug——TypeError: unhashable type(list/set/dict)

    正如错误提示,list/set/dict 均不可被哈希. 这一异常通常出现在,调用 set(-) 来构造一个 set (集合类型)时,set() 需要传递进来可哈希的元素(hashable items ...

  8. 【解决报错原因分析】画图plt.contourf(X,Y,Z)报错TypeError: unhashable type: ‘numpy.ndarray‘(含详细示例讲解)

    今天简化画图代码的时候发现了很奇怪的报错现象,经过一系列尝试找到了根源,希望帮助后来人,主要问题出现在如下语句中(为了体现问题.方便比对,特意在这改变了x为xx,如果你不想看这冗长的示例,可以直接按照 ...

  9. list转set遇坑:TypeError: unhashable type: ‘list‘

    由list组成的list(list套list)是不能转set的,形如: datalist = [[a],[b]] 转set时报错:TypeError: unhashable type: 'list' ...

最新文章

  1. 【win】黑框中常用的命令
  2. 普华永道:人工智能将重塑职位格局并与物联网合并
  3. MariaDB 求和,最大值,最小值,平均数
  4. My97DatePicker日历插件
  5. 用户体验——减少用户的操作!
  6. 私有云Opetstack的创建与运用
  7. 基于.NET2.0的System.Net.Mail发送邮件Demo
  8. find_first_of()和 find_last_of() 【获取路径、文件名】
  9. 渗透测试岗位面试题(重点:渗透测试思路)
  10. 图书馆用文本文件booklist.txt记录图书的书目,其中包括book1,book2,.....,book10.现在又要采购一批新书,编写程序将新的书目添加到目录中。
  11. [TCL]Tcl语言基礎教程(一)
  12. 南开大学校园邮箱pop3地址
  13. yxy小蒟蒻的201117总结
  14. admincp db.php,${discuz-admincp_db.php-vul} 命令执行漏洞 修复方案
  15. 计算机硬盘中有许多碎片,电脑磁盘碎片整理有什么用(需要经常清理吗)
  16. matlab gui双音拨号,电子信息毕业设计---双音多频拨号系统的MATLAB仿真实现
  17. ARM与Intel芯片性能不严谨比较
  18. Chapter9.2:线性系统的状态空间分析与综合(上)
  19. Unity判断手势的滑动方向,单点触摸和多点触摸,并获取刚触摸以及触摸结束事的坐标
  20. c语言指针数组分配内存,指针数组数组指针的分配内存及函数参数 C语言版

热门文章

  1. WebService 深入详解
  2. 拉格朗日插值(C++版)
  3. 解决win10使用Fiddler4无法手机抓包的问题(真正的大招!)
  4. 多路复用,讲的很明白
  5. pci 中断冲突_如何解决IRQ冲突
  6. Carson带你学Android:这是一份全面详细的属性动画学习攻略!
  7. 遗传算法(Genetic Algorithm,GA)实现数据排序,python
  8. 小白java环境变量配置
  9. libxml使用实例
  10. RHCSA 2022/10/14