字典

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

  1. 解读经典《C#高级编程》第七版 Page79-93.对象和类型.Chapter3

    前言 本篇我们继续讲解本章其余的部分:构造函数.只读字段.匿名类型.结构详解.部分类.静态类.Object类.扩展方法,等. 01 类 构造函数 构造函数是一种特殊的方法: 与类同名 没有返回值,甚至 ...

  2. Go 学习笔记(67)— Go 并发安全字典 sync.Map

    1. 并发不安全的 map Go 语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的. 换句话说,在同一时间段内,让不同 goroutine 中的代码,对同一个字典进行读写操作是 ...

  3. Python 将字符串转为字典

    引言 在工作中遇到一个小问题,需要将一个 Python 的字符串转为字典,比如字符串: user_info = '{"name" : "john", " ...

  4. 【C#】集合_哈希表_字典_泛型_文件

    数组能做到:存放同种类型数据,且数据个数确定 object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到 集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插 ...

  5. Python两个字典键同值相加的几种方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Jerry_1126/article/d ...

  6. pytorch 状态字典:state_dict 模型和参数保存

    pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的weights及偏置等等) (注意,只有那些参数可以训练的l ...

  7. Python 字典(Dictionary) get()方法

    Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...

  8. python 把2个列表或者2个元组转成字典

    python 把2个列表或者2个元组转成字典 使用映射的方法即可 语法如下: 字典 = dict(zip(list1,list2)) 说明: zip 是将2个列表或者2个元组合并 list1 是字典的 ...

  9. python 在字典插入值和修改字典value值的方法

    字典插入值 使用update是字典增加内容 dict_a = {"a": "1", "b": "2", "c& ...

最新文章

  1. 走近酷点KoolPoint,让我们深度挖掘网管软件的设计细节
  2. python语音识别播放音乐_使用python语音识别播放和流式转录音频
  3. 带缓冲的I/O操作和不带缓冲的I/O操作
  4. 一次高烧期间的感悟……
  5. linux手动同步文件命令,Linux文件同步命令rsync详解
  6. 项目Beta冲刺Day4
  7. 文本编辑器Vim/Neovim任意代码执行漏洞(CVE-2019-12735)
  8. Android表格布局之设置边框
  9. python扫描端口hack_一款集http端口扫描和目录批量扫描为一体的自动化工具
  10. 上传本地项目到码云仓库【图文详解】
  11. OpenCV-Python教程:阈值化(threshold,adaptiveThreshold)
  12. 极致体验,揭晓抖音背后的音视频技术
  13. 通过图片获取地理位置
  14. Python之sep与end
  15. 张小龙2018微信公开课超时演讲,总结微信8年
  16. lenovo服务器换系统重装系统_联想服务器重装系统教程
  17. 【JZOJ A组】黑暗之魂(darksoul)
  18. 京东商品爬虫实战笔记
  19. 在 Linux 下安装 GNU ARM 工具链
  20. Python操作表格

热门文章

  1. http方法_手撸HTTP是理解HTTP的最好方法(0)
  2. html照片4张 9张布局,css实现朋友圈照片排列布局
  3. java非静态块,在java中使用非静态块有什么用?
  4. java nio channel原理_Java NIO 选择器(Selector)与通道(Channel) 原理 | 学步园
  5. ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖
  6. Map.keyset()
  7. 如何使用MatPlotLib绘制出具有两个 Y 轴的曲线图?
  8. 电子漫画 - 轻轻松松
  9. 逐飞科技对于STC8H1K系列的单片机正交解码的资料以及实验
  10. 基于ESP8266 WiFi控制的步进升降机械平台