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多线程编程(四):使用Lock互斥锁
Apr 05 Python
Python模拟用户登录验证
Sep 11 Python
Python进阶之尾递归的用法实例
Jan 31 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
如何通过python的fabric包完成代码上传部署
Jul 29 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
python将dict中的unicode打印成中文实例
May 11 Python
实例代码讲解Python 线程池
Aug 24 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
python使用pygame创建精灵Sprite
Apr 06 Python
基于Python实现将列表数据生成折线图
Mar 23 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访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
js脚本实现数据去重
2014/11/27 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
python算法学习之基数排序实例
2013/12/18 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
Python Logging 日志记录入门学习
2018/06/02 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
Python接收手机短信的代码整理
2020/08/02 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
计算机专业毕业生自荐信范文
2014/03/06 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
感恩的心主题班会
2015/08/12 职场文书
新入职员工工作总结
2015/10/15 职场文书