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中关键字nonlocal和global的声明与解析
Mar 12 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
使用scrapy实现增量式爬取方式
Jun 21 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 用数组降低程序的时间复杂度
2009/12/04 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
php给数组赋值的实例方法
2019/09/26 PHP
情人节之礼 js项链效果
2012/02/13 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
详解node中创建服务进程
2017/05/09 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
详解Python中find()方法的使用
2015/05/18 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
对于Python深浅拷贝的理解
2019/07/29 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
留学推荐信写作指南
2014/01/25 职场文书
家长对孩子的评语
2014/04/18 职场文书
python 实现体质指数BMI计算
2021/05/26 Python
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android