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解释执行原理分析
Aug 22 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
Python基于mysql实现学生管理系统
Feb 21 Python
python序列类型种类详解
Feb 26 Python
Python ORM框架Peewee用法详解
Apr 29 Python
在pycharm中创建django项目的示例代码
May 28 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 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设计模式 Delegation(委托模式)
2011/06/26 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
Three.js学习之网格
2016/08/10 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
一个入门级python爬虫教程详解
2021/01/27 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
职工运动会感言
2014/02/07 职场文书
给校长的一封建议书
2014/03/12 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
领导班子整改方案
2014/10/25 职场文书
致接力运动员加油稿
2015/07/21 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
Java并发编程必备之Future机制
2021/06/30 Java/Android
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers