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同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python入门之modf()方法的使用
May 15 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
Python存取XML的常见方法实例分析
Mar 21 Python
Python正则捕获操作示例
Aug 19 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
python实现实时视频流播放代码实例
Jan 11 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
jupyter notebook读取/导出文件/图片实例
Apr 16 Python
python中if嵌套命令实例讲解
Feb 25 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
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
python使用PyFetion来发送短信的例子
2014/04/22 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python中函数的返回值示例浅析
2019/08/28 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
厂区绿化方案
2014/05/08 职场文书
安全先进班组材料
2014/12/26 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
美丽的大脚观后感
2015/06/03 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android
Python进程间的通信之语法学习
2022/04/11 Python