python字典key不能是可以是啥类型


Posted in Python onAugust 04, 2020

python中字典的key不能是可变类型。字典可存储任意类型对象,其中值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。语法格式:【d = {key1 : value1, key2 : value2}】。

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

代码实现:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

内容扩展:

Python中字典的key都可以是什么?

答:一个对象能不能作为字典的key,就取决于其有没有__hash__方法。所以所有python自带类型中,除了list、dict、set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当key。

比如数值/字符串/完全不可变的元祖/函数(内建或自定义)/类(内建或自定义)/方法/包等等你能拿出手的,不过有的实际意义不高。还有数值型要注意,因为两个不同的相等数字可以有相同的哈希值,比如1和1.0。

解释:

代码版本:3.6.3;文档版本:3.6.6

Unlike sequences, which are indexed by a range of numbers, dictionaries are indexed by keys, which can be any immutable type; strings and numbers can always be keys. Tuples can be used as keys if they contain only strings, numbers, or tuples; if a tuple contains any mutable object either directly or indirectly, it cannot be used as a key. You can't use lists as keys, since lists can be modified in place using index assignments, slice assignments, or methods like append()and extend().

字典的键可以是任意不可变类型,需要注意的是tuple元组作为键时,其中不能以任何方式包含可变对象。

到此这篇关于python字典key不能是可以是啥类型的文章就介绍到这了,更多相关python字典key不能是什么类型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python字符串格式化输出方法分析
Apr 13 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python实现textrank关键词提取
Jun 22 Python
python实现自动登录后台管理系统
Oct 18 Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 Python
python+pyqt5编写md5生成器
Mar 18 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
python__new__内置静态方法使用解析
Jan 07 Python
Python程序慢的重要原因
Sep 04 Python
教你利用python实现企业微信发送消息
May 23 Python
Python延迟绑定问题原理及解决方案
Aug 04 #Python
Python 使用生成器代替线程的方法
Aug 04 #Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 #Python
python读取xml文件方法解析
Aug 04 #Python
如何利用python进行时间序列分析
Aug 04 #Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 #Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 #Python
You might like
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
php简单判断文本编码的方法
2015/07/30 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
python实现猜拳小游戏
2020/04/05 Python
python logging设置level失败的解决方法
2020/02/19 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
实习护理工作自我评价
2013/09/25 职场文书
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
企业文化理念标语
2014/06/10 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
《火烧云》教学反思
2016/02/23 职场文书