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支持断点续传的多线程下载示例
Jan 16 Python
zbar解码二维码和条形码示例
Feb 07 Python
Python中用于返回绝对值的abs()方法
May 14 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python批量图片处理简单示例
Aug 06 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
python 轮询执行某函数的2种方式
May 03 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 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
桌面中心(二)数据库写入
2006/10/09 PHP
用户的详细注册和判断
2006/10/09 PHP
PHP 命名空间实例说明
2011/01/27 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
Python基本语法经典教程
2016/03/11 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Python 加密的实例详解
2017/10/09 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
DNA测试:Orig3n
2019/03/01 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
类的核心特性有哪些
2014/01/01 面试题
what is the difference between ext2 and ext3
2015/08/25 面试题
什么是Web Service?
2012/07/25 面试题
会计学自我鉴定
2014/02/06 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
大学军训的体会
2014/11/08 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
MySQL的Query Cache图文详解
2021/07/01 MySQL
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis