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 迭代器工具包【推荐】
May 06 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
python实现名片管理系统
Nov 29 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
Python设计模式之代理模式实例详解
Jan 19 Python
Python3标准库总结
Feb 19 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
Python pip安装模块提示错误解决方案
May 22 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python 录制系统声音的示例
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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
php常用数组函数实例小结
2016/12/29 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
python中__call__内置函数用法实例
2015/06/04 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
python僵尸进程产生的原因
2017/07/21 Python
Python中整数的缓存机制讲解
2019/02/16 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
世界汽车零件:World Car Parts
2019/09/04 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
初婚初育证明
2014/01/14 职场文书
创意广告词
2014/03/17 职场文书
大学毕业寄语大全
2014/04/10 职场文书
单位委托书怎么写
2014/09/21 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏
vscode内网访问服务器的方法
2022/06/28 Servers