python如何创建一个列表,在python中创建一个由列表索引的字典
I would like to create a dictionary which is indexed by lists. For instance, my dictionary should look like:
D = {[1,2,3]:1, [2,3]:3}
Anyone know how to do this? If I just type D([1,2,3]) = 1 it returns an error.
解决方案
dict keys must be hashable, which lists are not becase they are mutable. You can change a list after you make it. Think of how tricky it would be to try to keep a dict when the data used as keys changes; it doesn't make any sense. Imagine this scenario
>>> foo = [1, 2]
>>> bar = {foo: 3}
>>> foo.append(4)
and you will see why Python does not try to support lists as keys.
The most obvious solution is to use tuples instead of lists as keys.
>>> d = {[1, 2, 3]: 1, [2, 3]: 3}
Traceback (most recent call last):
File "", line 1, in
TypeError: unhashable type: 'list'
>>> d = {(1, 2, 3): 1, (2, 3): 3}
>>> d
{(2, 3): 3, (1, 2, 3): 1}
>>> d[2, 3]
3
python如何创建一个列表,在python中创建一个由列表索引的字典相关推荐
- ZeroMQ接口函数之 :zmq_msg_init_data - 从一个指定的存储空间中初始化一个ZMQ消息对象的数据...
ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init_data zmq_msg_init_data(3) ØMQ Manual - ØMQ/3.2.5 ...
- 写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- 使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用)
目录 理论 构建DLL 使用Python进行调用 使用C++控制台程序进行调用 理论 在Windows下,可能要用MFC或C#或Java,python调用一个插件,这个插件是一个dll,可以弄一个Qt ...
- 做工程为什么不用python_为什么“python setup.py sdist”在项目根目录中创建不需要的“PROJECT-egg.info”?...
当我跑 python setup.py sdist 它在我的./dist目录中创建一个sdist.这包括一个"PROJECT-egg.info"文件在我的"dist&qu ...
- python猜数字游戏、在程序中预设一个_python 语法基础练习题
python 语法基础练习题 1. 分别解释"=","==","+="的含义(口述) 2.两个变量值的关系?(口述) n1 = 123456 ...
- 从另一个分支在Git中创建一个分支
我有两个分支: master和dev 我想从dev分支创建一个"功能分支". 目前在分支机构dev上,我执行以下操作: $ git checkout -b myfeature de ...
- java语言中修饰一个常量_接口中定义一个常量所用的修饰符有: (5.0分)_学小易找答案...
[判断题]Java中的接口不允许被继承 (5.0分) [单选题]下列程序的输出结果是( ) public class Ex_36{ public static void main(String arg ...
- 创建模板_在 GNOME 中创建文档模板 | Linux 中国
导读:制作模板可以让你更快地开始写作新的文档. 本文字数:1305,阅读时长大约:1分钟https://linux.cn/article-12699-1.html作者:Alan Formy-duval ...
- linux创建分区_在Linux中创建分区-分步指南
linux创建分区 In this tutorial, we'll be covering the steps to create a partition in Linux. This can hel ...
- linux 图形化创建文件,Arronax - 在Ubuntu中创建桌面启动器的图形工具
原标题:Arronax - 在Ubuntu中创建桌面启动器的图形工具 对于那些想在Ubuntu 16.04,Ubuntu 18.04,Ubuntu 19.04中手动创建桌面快捷方式启动器的人来说,Ar ...
最新文章
- 静态链表的插入和删除
- 经济学相关资料20170924.词袋.books
- 八一学院计算机无纸化考试成绩查询,会从考试成绩查询入口
- 单词接龙(信息学奥赛一本通-T1220)
- mint linux qq,linuxmint系统下安装QQ
- IDEA :Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
- 日志系统新贵 Loki,确实比笨重的 ELK 轻
- tcp协议报文和三次握手与四次挥手
- python编程题字符串的美化_Python编程题15--RGB字符串排序
- 快手did did_gt edid的注册过程
- 哔哩哔哩H.265编码器在直播和点播的实践和应用
- 简洁的表白java_java简短表白代码是什么
- 【科研绘图】用PPT进行科研用图的图片预处理
- 联系人管理系统 python版
- 软件工程专业画图工具Jude的安装与Windows找不到javaw文件的解决办法
- 电商网站如何进行库存同步处理Redis+Lua
- redis设置连接密码
- PAT乙级1025题解
- js拖拽360桌面悬浮球代码
- Converged System 一体机趋势不可挡 - IBM PureSystem与SAP
热门文章
- ASP.NET MVC3 系列教程 - 如何使项目Debug进MVC3源代码
- [JavaScriptC#]收藏 备忘
- 1 Linux挂载光盘与U盘
- 使用内存硬盘(tmpfs)来加速你的网站
- ping来自192.168.1.1的回复:无法访问目标主机(丢包等网络问题)
- Get value from agent failed:cannot connect to [[192.168.121.128]:10050]:[111Connection refused]]
- dev代码拷贝中文乱码的解决方案
- Android Studio支持Java1.8的解决方案
- 解决 el-autocomplete 不显示及没数据时闪一下的问题
- 解决启动nginx时报80端口被占用的问题