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中关键字is与==的区别简述
Jul 31 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
Python enumerate索引迭代代码解析
Jan 19 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
Python实现最大子序和的方法示例
Jul 05 Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 Python
Python zip函数打包元素实例解析
Dec 11 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 Python
python基础之函数的定义和调用
Oct 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身份证校验码计算方法
2016/08/10 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
简单解决Python文件中文编码问题
2015/11/22 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python scipy卷积运算的实现方法
2019/09/16 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Django REST 异常处理详解
2020/07/15 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
培训楼经理岗位责任制
2014/02/10 职场文书
教师求职信
2014/06/17 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
小学运动会宣传稿
2015/07/23 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript