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 相关文章推荐
开源Web应用框架Django图文教程
Mar 09 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
python 内置模块详解
Jan 01 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
用 Python 制作地球仪的方法
Apr 24 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
python 实现图片批量压缩的示例
Dec 18 Python
python3使用diagrams绘制架构图的步骤
Apr 08 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 Python
Python实现老照片修复之上色小技巧
Oct 16 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(六)
2006/10/09 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
PHP 实现链式操作
2021/03/09 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
周年庆促销方案
2014/03/15 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
授权委托书范本
2014/04/03 职场文书
作风建设演讲稿
2014/05/23 职场文书
主要负责人任命书
2014/06/06 职场文书