Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
list 是可变类型,无法进行 hash,或者说凡可变类型都无法进行 hash;
1. list 作为字典(dict)的 key
注意字典,无论是 Python 2.x 还是 Python 3.x 都要求它的 key 类型是可哈希的(hashable),
>>> d = {}
>>> d[[1, 2]] = 'good'
TypeError: unhashable type: 'list'
- (1)range 在 Python 2.x 得到一个 list 类型,自然不可哈希
- (2)range 在 Python 3.x 得到的是 range 类型,可哈希,
- (3)Python 2.x 中的 xrange 的用法等价于 Python 3.x 中的 range,仅用于迭代(或者进行强转为其他容器)
所以在 Python 2.x,不可使用 range 作为 dict 的 key 类型,而必须使用 xrange。
2. nested list
a = [[1, 2], [3, 4], [5, 6]]
try:print(list(set(a)))
except TypeError, e:print 'Error:', e
list 类型不可 hash,出现在 set(a),使用 tuple 替换:
a = [[1, 2], [3, 4], [5, 6]]
try:print(list(set(tuple(i) for i in a)))
except TypeError, e:print 'Error:', e
Python 2.x vs Python 3.x(四)—— TypeError: unhashable type相关推荐
- python TypeError: unhashable type: 'set'
写代码时遇到这个问题,代码大概如下: for i in dataSet:for j in canSet:if j.issubset(i):can_num_dic[j] = can_num_dic.ge ...
- Python debug——TypeError: unhashable type(list/set/dict)
正如错误提示,list/set/dict 均不可被哈希. 这一异常通常出现在,调用 set(-) 来构造一个 set (集合类型)时,set() 需要传递进来可哈希的元素(hashable items ...
- Python编码报错 TypeError: unhashable type set
问题: TypeError: unhashable type set class FTP(object):def __init__(self,ip,user,passwd) :self.ip = ip ...
- python flag用法_Python 进阶之路 (四) 先立Flag, 社区最全的Set用法集锦
Set是什么 大家好,恰逢初五迎财神,先预祝大家新年财源滚滚!! 在上一期详解tuple元组的用法后,今天我们来看Python里面最后一种常见的数据类型:集合(Set) 与dict类似,set也是一组 ...
- [python 进阶] 9. 符合Python风格的对象
文章目录 9.1 对象表示形式 9.2 再谈向量类 9.3 备选构造方法 9.4 classmethod与staticmethod 9.5 格式化显示 9.6 可散列的Vector2d 什么是可散列的 ...
- python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...
image.png 网上现在Python学习资料有很多,但是很杂.很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的. 刚好朋友是北大的博士,在IT行业也工作八年了.就把他学习Py ...
- python猜数字1001untitled_ML - Python 基础
数据类型 Numeric & String 1. Python数据类型 1.1 总体:numerics, sequences, mappings, classes, instances, an ...
- python list 实现原理,Python 列表(List)的底层实现原理分析
Python 列表的数据结构是怎么样的? 列表实际上采用的就是数据结构中的顺序表,而且是一种采用分离式技术实现的动态顺序表 但这是不是Python的列表? 我的结论是顺序表是列表的一种实现方式. 书上 ...
- python编程常用代码-Python编程常见问题与解答
1.问:Python代码运行速度和C语言相比,哪个更快? 答:一般来说,Python代码的运行速度比C语言的慢很多,但是如果充分运用内置函数.标准库对象和函数式编程模式的话,运行速度会提高很多,可以接 ...
最新文章
- 在Mac OS环境下安装MySQL服务
- Request header field Content-Type is not allowed by Access-Control-Allow-Headers跨域
- C# GDI+ 绘图
- java一个式子开根号语句_Oracle查询语句,你知道几个?(上)
- python生成json_python中如何进行json转化
- Java生成CSV文件的方法
- easybcd添加或删除启动选项
- 视频教程-带你轻松入门MATLAB-Matlab
- IEEE COMMUNICATIONS LETTERS 写作Latex模板
- Paper和陈丹琦撞车是一种怎样的体验
- Python黑科技神奇去除马赛克
- [随记] 注释//TODO的作用
- 【C++】「一本通 1.1 例 4」加工生产调度
- 袋式过滤器 - - 过滤与分离的基本原理,结构和布局的控制袋式过滤器
- 极智开发 | 华为云ECS本地开发环境搭建
- 少儿编程Scratch学习教程4--基本操作(一)特效例子
- 计算机科学分为哪些领域,计算机科学技术主要包含哪些领域
- 你们听歌都是用什么软件听?这里有三款优秀的小众音乐播放器!
- 详解C语言自定义类型(结构体,位段,枚举,联合)
- 解题-->在线OJ(四)
热门文章
- 2020-10-27中国大学MOOC学习进度
- MySQL 字段类型解析
- 新泰一中2021年高考成绩查询,牛!泰安新泰一中2018年高考一班级62人全部上本科线...
- python3 科学计算_python3 科学计算之pandas入门(一)
- LeetCode 207. 课程表(广度优先遍历)
- Python——元组Tuple
- CUDA ---- Warp解析
- 关于排序算法思想总结,你该了解这些
- 解决XP中CPU占用率过高问题, 关了445这个端口(ZT)
- 图像相似度算法--SIFT算法详解