chapter3.3字典
字典
key-value键值对的数据集合
可变的,无序的,key不重复
字典定义,初始化
d = dict() 或 d = {}
dict(*kwargs)使用name = value对初始化字典
dict(iterable,**kwarg)使用可迭代对象和name=value对构造字典,可迭代对象必须是一个二元结构
d = dict(((1,'a',)(2,'b')))或者d = dict(([1,'a'],[2,'b']))
dict(mapping,**kwarg)使用字典构造另一个字典
d = {'a':10,'b':20,'c':None,'d':[1,2,3],'e':{1,2,3}}
d = dict.fromkeys(range(5))
a={a=1,b=2}
a={'a':1,'b':2}
key要求可hash,value无要求,
maping 映射
字典复制,复杂结构的引用地址不变,引用类型的引用计数加一
d={'a':10,;'b':None,'c':[1,2,3]}
字典元素的访问
d[key]
返回key对应的值value
key不存在抛出KeyError异常
d2.get('a'), 返回d2中 'a' 对应的值value,不存在返回缺省值,缺省值为空返回None
setdefault(key[,default]) 有key,取value,没有补缺省值,未设置缺省值就返回None
字典增加和修改
d[key] = value
update([other])-->None
使用另一个字典的kv对更新本字典
key不存在就添加
key存在,覆盖已经存在的key对应的值
就地修改
字典的删除
pop(key[,default]) key存在,移除,返回value,不存在返回缺省值default
popitem() 移除并返回任意的键值对,字典为空,抛出异常,少用
clear() 清空字典
del a 删除元素,对于引用对象,减少了一个对象的引用,删除的是名称,而不是对象,删除对象的引用计数
字典遍历
for ... in dict 遍历key,d.keys() ,d.values()
for item 遍历键值对
Python3中,keys,items,values方法返回的是类似生成器的可迭代对象,不会把返回的结果复制到内存中
Dictionary view对象,可以使用len()、iter()、in 操作
字典的entry的动态视图,字典变化,视图将反映出这些变化
keys返回亦歌类似set对象,也就是看作set集合,如果value都可以hash,那么items也可以看作类set对象
for k ,v in d2.items() 1433
字典不能在遍历时移除或增加元素,会报错,先将要移除的值的key放如列表中,再统一移除
key,与set元素要求一致
set可以看作dict的简化版
hashable 可hash才可以作为key,使用hash()测试
defaultdict(default_factory[, ...]) --> dict with default factory
第一个参数default_factory,缺省是None,提供一个初始化函数,key不存在时,会调用这个工厂函数生成key对应的value
from collections import defaultdict
OrderedDict(self, /, *args, **kwargs)
3.6版本的Python字典直接是OrderedDict,排序好的,(Ipython不一定有效果)在3.5和之前是无序的.
有序字典可以记录元素插入顺序,打印也是这个顺序
使用OrderedDict来记录顺序,key的输入顺序本身无序
转载于:https://www.cnblogs.com/rprp789/p/9478031.html
chapter3.3字典相关推荐
- 解读经典《C#高级编程》第七版 Page79-93.对象和类型.Chapter3
前言 本篇我们继续讲解本章其余的部分:构造函数.只读字段.匿名类型.结构详解.部分类.静态类.Object类.扩展方法,等. 01 类 构造函数 构造函数是一种特殊的方法: 与类同名 没有返回值,甚至 ...
- Go 学习笔记(67)— Go 并发安全字典 sync.Map
1. 并发不安全的 map Go 语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的. 换句话说,在同一时间段内,让不同 goroutine 中的代码,对同一个字典进行读写操作是 ...
- Python 将字符串转为字典
引言 在工作中遇到一个小问题,需要将一个 Python 的字符串转为字典,比如字符串: user_info = '{"name" : "john", " ...
- 【C#】集合_哈希表_字典_泛型_文件
数组能做到:存放同种类型数据,且数据个数确定 object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到 集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插 ...
- Python两个字典键同值相加的几种方法
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Jerry_1126/article/d ...
- pytorch 状态字典:state_dict 模型和参数保存
pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的weights及偏置等等) (注意,只有那些参数可以训练的l ...
- Python 字典(Dictionary) get()方法
Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...
- python 把2个列表或者2个元组转成字典
python 把2个列表或者2个元组转成字典 使用映射的方法即可 语法如下: 字典 = dict(zip(list1,list2)) 说明: zip 是将2个列表或者2个元组合并 list1 是字典的 ...
- python 在字典插入值和修改字典value值的方法
字典插入值 使用update是字典增加内容 dict_a = {"a": "1", "b": "2", "c& ...
最新文章
- 走近酷点KoolPoint,让我们深度挖掘网管软件的设计细节
- python语音识别播放音乐_使用python语音识别播放和流式转录音频
- 带缓冲的I/O操作和不带缓冲的I/O操作
- 一次高烧期间的感悟……
- linux手动同步文件命令,Linux文件同步命令rsync详解
- 项目Beta冲刺Day4
- 文本编辑器Vim/Neovim任意代码执行漏洞(CVE-2019-12735)
- Android表格布局之设置边框
- python扫描端口hack_一款集http端口扫描和目录批量扫描为一体的自动化工具
- 上传本地项目到码云仓库【图文详解】
- OpenCV-Python教程:阈值化(threshold,adaptiveThreshold)
- 极致体验,揭晓抖音背后的音视频技术
- 通过图片获取地理位置
- Python之sep与end
- 张小龙2018微信公开课超时演讲,总结微信8年
- lenovo服务器换系统重装系统_联想服务器重装系统教程
- 【JZOJ A组】黑暗之魂(darksoul)
- 京东商品爬虫实战笔记
- 在 Linux 下安装 GNU ARM 工具链
- Python操作表格
热门文章
- http方法_手撸HTTP是理解HTTP的最好方法(0)
- html照片4张 9张布局,css实现朋友圈照片排列布局
- java非静态块,在java中使用非静态块有什么用?
- java nio channel原理_Java NIO 选择器(Selector)与通道(Channel) 原理 | 学步园
- ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖
- Map.keyset()
- 如何使用MatPlotLib绘制出具有两个 Y 轴的曲线图?
- 电子漫画 - 轻轻松松
- 逐飞科技对于STC8H1K系列的单片机正交解码的资料以及实验
- 基于ESP8266 WiFi控制的步进升降机械平台