2019独角兽企业重金招聘Python工程师标准>>>

1.什么是字典

  • 字典就是key-value键值对数据的集合(且key不可重复);

  • 字典是可变的,无序的;

  • 字典中,key必须是可哈希的数据类型;

2.字典的定义和初始化

  • 定义字典可以使用d = dict() 或者 d = {}两种方法;
d = dict()  #定义字典
d = {}
  • 使用键值对的方式初始化字典;
d = {'a':1, 'b':2}
print(d)    #输出:{'a': 1, 'b': 2}
  • 使用传参的方式初始化字典;
d = dict(a=1, b=2)
print(d)    #输出:{'a': 1, 'b': 2}
  • 使用元组的方式初始化字典(比较少见);
d = dict((('a',1),('b', 2)))
print(d)    #输出:{'a': 1, 'b': 2}
  • 使用字典构造器的构造方法fromkeys() 来通过可迭代对象批量的传值;
d = dict.fromkeys(range(5), 'hello')
print(d)    #输出:{0: 'hello', 1: 'hello', 2: 'hello', 3: 'hello', 4: 'hello'}

3.字典的访问

d = {'a':10, 'b':20}d.setdefault('c', 30)   # 设置默认值print(d['a'])    #输出:10print(d.get('d', None))   #输出:Noneprint(d)  #输出:{'a': 10, 'b': 20, 'c': 30}
  • 字典可以通过key来访问;

  • 使用setdefault()方法来设置默认值(只能加一个新的值,不能覆盖原有值);

  • 使用get()方法通过key来访问字典,当key存在时,返回value值,key不存在时返回则None;

4.字典修改

d = {'a':1, 'b':2}
d.update({'c': '3'})
print(d)   #输出:{'a': 1, 'b': 2, 'c': '3'}d['a'] = 10
print(d)    #输出:{'a': 10, 'b': 2, 'c': '3'}
  • 使用update()方法来修改字典;

  • 直接使用key来修改字典;

5.字典插入

  • 直接使用key来插入;
d = {'a':10, 'b':20}
d['c'] = 30
print(d)   #输出:{'a': 10, 'b': 20, 'c': 30}

6.字典的删除

d = {'a':10, 'b':20}
  • pop:通过pop()方法删除指定key的value;
d.pop('a',None)
print(d)   #输出:{'b': 20}
  • popitem:随机删除任意键值对;
d.popitem()   #删除任意键值对
print(d)    #输出:{'a': 10}
  • clear:删除字典所以元素;
d.clear()
print(d)      #输出:{}
  • del:通过del魔术方法删除指定key的value;
del d['a']
print(d)     #输出:{'b': 20}

7.字典的遍历

d = {'a':10, 'b':20}# key的遍历
for key in d:print(key)
for key in d.keys():print(key)# value的遍历
for key in d:print(d[key])
for key in d.keys():print(d.get(key))# key/value遍历
for item in d.items():print(item)
for key,value in d.items():print(key, value)
  • 字典可以使用for来遍历的;

  • for循环可以单独遍历key,单独遍历value,key和value一起遍历;

  • 单独遍历key或者value时需要用到keys;

  • key和value一起遍历需要是用到items;

8.标准库中的字典

  • 默认字典:defaultdict,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,默认字典初始化什么类型,返回值对应该类型的空值 (如int返回0,str返回空字符串);
from collections import defaultdict
dict1 = defaultdict(int) # 默认值是0
print(dict1[1])  #输出:0
print(dict1[2])  #输出:0dict2 = defaultdict(set) # 默认的是set( )
print(dict2[1])    #输出:set()
print(dict2[2])     #输出:set()dict3 = defaultdict(str) # 默认是空字符串
print(dict3[1])dict4 = defaultdict(list) # 默认是空列表[]
print(dict4[1])   #输出:[]
  • 有序字典:OrderedDict,记录了key插入的顺序,也就是让无序的字典变为有序;
from collections import OrderedDict
import random
d = {'赵': 1, '钱': 2, '孙': 3, '李': 4}
keys = list(d.keys())  #把键值存入列表中
print(keys)   #输出:['赵', '钱', '孙', '李']random.shuffle(keys)  #随机打乱列表中的keys值
print(keys)order_d = OrderedDict()   #创建一个有序字典对象
for key in keys:order_d[key] = d[key]
print(order_d.keys())

参考:https://www.9xkd.com/user/plan.html

转载于:https://my.oschina.net/u/4072026/blog/3015597

Python基本数据类型之字典相关推荐

  1. python判断数据类型是不是字典的方法

    这篇文章主要介绍python判断数据类型是不是字典的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! python的数据类型有:数字(int).浮点(float).字符串(s ...

  2. Python经典数据类型:字典

    选择题 以下关于Python字典的描述中,错误的是: A.在定义字典时,键和值用冒号连接 B.字典通过整数索引来查找其中的元素 C.字典的键值对之间没有顺序且不能重复 D.字典用中括号中包含键名的格式 ...

  3. 4、Python基本数据类型之字典,集合

    一.字典 在python中定义一个字典的语法为: 1 dic = {1:"张三",2:"李四"} 字典的每一个元素由key:value组成,这类似于一个学号对应 ...

  4. Python组合数据类型:字典dictionary

    一.组合数据类型container objects 组合数据类型container objects:能够表示多个数据的类型 集合类型:集合类型是元素集合,元素无序不重不变 序列类型:序列类型是元素向量 ...

  5. python基本数据类型之字典详解

    文章目录 字典(dict) 一.定义和表示 二.字典的基本操作 2.1 查看(取值) 1.key在字典中取值案例: 2.key不在字典中取值会报错,如果想要不报错,可用==get方法设置默认值== 2 ...

  6. Python组合数据类型之字典类型

    单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 首先 ...

  7. 4.Python复杂数据类型之字典

    概述 Python字典可以将相关信息关联起来,使用字典可以更准确地为各种真实物体建模. 本节主要包括字典的创建.访问.修改和遍历等内容. 创建字典 字典采用花括号{},下标则是方括号[],字典采用键- ...

  8. Python核心数据类型之字典15

    一,字典 1. 字典在其它编程语言中又称为关联数组或散列表: 2. 特性: a. 通过键值实现元素存取: b. 无序集合: c. 可变类型容器: d. 长度可变: e. 支持异构: f. 支持嵌套: ...

  9. Python 数据类型之字典

    Python 数据类型之字典 键值对的无序集合 键和值必须成对出现 只能通过键获取值创建字典创建字典和创建集合类似应当指定键值对而不是值>>> a_dict = {'Name':'S ...

  10. 字典添加数据_【Python基础学习】4. 数据类型之字典及其操作

    知行校园汇 记录学习.分享干货.吐槽人生! 关注 相关说明 文章内容:Python数据类型之字典及其操作 作者博客:csdn.cxhit.com www.cxhit.com 1. 什么是字典 在Pyt ...

最新文章

  1. 《计算机科学概论》—第2章2.2节位置记数法
  2. UVA10010 Where's Waldorf?
  3. android: 调用摄像头拍照
  4. java什么内部类_Java的内部类学习
  5. mmall工程生成dao层的插件出错了出错了 自动生成mapper 的插件出错了
  6. (vue基础试炼_01)使用vue.js 快速入门hello world
  7. Python解析url、提取url参数、提取url数据(Python2、Python3、提取url、端口、协议、路径)
  8. 中国互联网大佬隐退简史
  9. 直接双击启动tomcat中的startup.bat闪退原因及解决方法
  10. 阿里云云计算 14 使用阿里云中的OSS
  11. Ubuntu常用软件推荐,图文详细说明及下载
  12. INA217构成的专业级微型话筒(麦克风)前置放大典型电路图
  13. 大学生活这样过,等着 Offer 飞来找 | 程序员有话说
  14. Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist
  15. 30天自制操作系统 第2天
  16. 树莓派开机启动python脚本的另一种方法
  17. android 联机游戏平台,游聚平台/街机平台/主机联网/街机对战平台/网络街机
  18. 408 知识点笔记——操作系统(绪论、进程管理)
  19. flex布局: 每行显示n个div块,第n+1个自动换行显示
  20. VS2015官方下载地址(个人免费版)

热门文章

  1. Atitit layout art 布局的艺术目录1. SpringLayout 类 弹簧布局管理器 12. BoxLayout( html默认布局) 11.SpringLayout
  2. Atitit  信息管理 艾提拉著 CAPT2 数据存储与分类 聚集.docx 目录 1. 按照存储位置 1 1.1. 网盘 1 1.2. 存储在eml imap中 方便检索 1 1.3. 分散与
  3. Atitit 高级人员的指标 参照发达国家(Developed Country)指标 目录 1. 普遍特征是较高的发展指数、人均生产总值、工程化水准和品质 [1]  。科学技术水准等指标 1 2.
  4. atitit。ocr框架类库大全 attilax总结
  5. Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package
  6. paip.数据挖掘--导出词库 清理太长的iptcode
  7. paip.获取文件名从路径uapi java python php总结...
  8. paip.程序不报错自动退出的解决
  9. paip.System.out.println乱码解决
  10. paip.解决Invalid byte 2 of 2-byte UTF-8 sequence.