Python数据类型之Dict字典实例详解


Posted in Python onMay 07, 2019

本文实例讲述了Python数据类型之Dict字典。分享给大家供大家参考,具体如下:

dict字典

1.概述

dict也是一种存储方式,类似于list和tuple,但是,字典采用键—值(key—value)的形式存储。

优点:具有极快的查找速度。

2.key的特性

① 字典中的key必须唯一
② **.key必须是不可变对象**

例如:字符串、整数等都是不可变的,可以作为key

list是可变的,不能作为key

应用场景举例:保存学生成绩

可以采用字典,将学生的学号或者名字作为key,成绩为value进行存储,方便查找。

3.字典的创建

语法:

字典名 = {键1:值1,键2:值2,…}

dist1 = {'tom':90,'lili':78, 'lele':92}
print(dist1)
print(dict(a=1,b=2,c=3))

输出:

{'tom': 90, 'lili': 78, 'lele': 92}
{'a': 1, 'b': 2, 'c': 3}

3.1列表中的元组转字典:

list1= [('a',1),('b',2)]
print({a:b for a,b in list1})
>>>{'a': 1, 'b': 2}

4.字典操作

4.1访问元素

语法:元素 = 字典名[key]

dist1 = {'tom':90,'lili':78, 'lele':92}
print(dist1['tom'])

输出:

90

注意:在key不存在的情况下,会报错。

语法: 元素 = 字典名.get(key)

功能:使用get的方法获取值,若key存在,则返回value的值,若key不存在则返回None

dist1 = {'tom':90,'lili':78, 'lele':92}
value = dist1.get('tom')
print(value)

输出:

90

4.2 添加元素

语法:字典名[key] = value

dist1 = {'tom':90,'lili':78, 'lele':92}
dist1['lisi'] = 89
print(dist1)

输出:

{'tom': 90, 'lili': 78, 'lele': 92, 'lisi': 89}

注意:一个key只能对应一个value,多次对一个key的value赋值,后面的值会把前面的值覆盖掉。

4.3 删除元素

语法:字典名.pop(key)

dist1 = {'tom':90,'lili':78, 'lele':92}
print(dist1.pop('tom'))
print(dist1)

输出:

90
{'lili': 78, 'lele': 92}

5.字典的遍历

字典在内存中存储是无序的,因此无法通过下标来获取值。

5.1 使用for循环遍历

语法:

获取键

for key in dict:
​ print(key)

获取值

for value in dict.values() :
​ print(value)

同时获取键和值

for k, v in dist.items() :
​ print(k, v)

dict1 = {'tom':90,'lili':78, 'lele':92}
#获取字典的key
for key in dict1:
 print(key)
#获取字典中的value 
for value in dict1.values():
 print(value)
#同时获取字典中的key与value
for k, v in dict1.items():
 print(k, v)

输出:

tom
lili
lele
90
78
92
tom 90
lili 78
lele 92

# 通过函数来遍历字典
dict1 = {'tom':90,'lili':78, 'lele':92}
for i,v in enumerate(dict1):
 print(i,v,dict1[v])

输出:

0 tom 90
1 lili 78
2 lele 92

5.2 字典对调

d ={'d': 4, 'a': 1, 'b': 2, 'c': 3}
d = {v: k for k, v in d.items()}
print(d)

输出:

{4: 'd', 1: 'a', 2: 'b', 3: 'c'}

6.与list的区别

1.dist的查找和插入的速度极快,不会随着key-value的增加而变慢,但是list在查找的时候需要从头向后挨个遍历元素,并且当数据量增大的时候,速度也会随着变慢

2.dist需要占用大量的内存,内存浪费多,而list只相当于存储了字典的key或者value部分,并且数据是紧密排列的。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python检测服务器是否正常
Feb 16 Python
Python 异常处理实例详解
Mar 12 Python
python脚本监控docker容器
Apr 27 Python
详解Python的Lambda函数与排序
Oct 25 Python
用python实现对比两张图片的不同
Feb 05 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
Pygame的程序开始示例代码
May 07 Python
利用python 下载bilibili视频
Nov 13 Python
Python实现京东抢秒杀功能
Jan 25 Python
Python函数对象与闭包函数
Apr 13 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 Python
Python分支语句与循环语句应用实例分析
May 07 #Python
Python正则表达式实现简易计算器功能示例
May 07 #Python
深入浅析Python 中 is 语法带来的误解
May 07 #Python
利用python如何在前程无忧高效投递简历
May 07 #Python
Python可迭代对象操作示例
May 07 #Python
python实现支付宝转账接口
May 07 #Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 #Python
You might like
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
php目录拷贝实现方法
2015/07/10 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
详解python中的线程与线程池
2019/05/10 Python
python线程池如何使用
2020/05/28 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
保送生自荐信范文
2013/10/06 职场文书
便利店的创业计划书
2014/01/15 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
珍爱生命主题班会
2015/08/13 职场文书
Go语言基础map用法及示例详解
2021/11/17 Golang
JAVA springCloud项目搭建流程
2022/05/11 Java/Android
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技