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操作MongoDB基础知识
Nov 01 Python
Python常用的日期时间处理方法示例
Feb 08 Python
python文件操作之目录遍历实例分析
May 20 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
python实现SMTP邮件发送功能
Jun 16 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
python列表推导式入门学习解析
Dec 02 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
jquery动态添加option示例
2013/12/30 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
js实现一键复制功能
2017/03/16 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
Python open读写文件实现脚本
2008/09/06 Python
python获取外网ip地址的方法总结
2015/07/02 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
浅谈python标准库--functools.partial
2019/03/13 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
python hashlib加密实现代码
2019/10/17 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
会计系个人求职信范文分享
2013/12/20 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
大学四年职业生涯规划书范文
2014/01/02 职场文书
婚育证明样本
2015/06/16 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL