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脚本使得web页面上的代码高亮显示
Apr 24 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
Python定时执行之Timer用法示例
May 27 Python
python中函数默认值使用注意点详解
Jun 01 Python
Python 基础教程之包和类的用法
Feb 23 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
python+OpenCV实现图像拼接
Mar 05 Python
教你用Python写一个植物大战僵尸小游戏
Apr 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
Laravel 队列使用的实现
2019/01/08 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
js的2种继承方式详解
2014/03/04 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
python opencv之分水岭算法示例
2018/02/24 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
公司承诺书格式
2014/05/21 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
2016年少先队活动总结
2016/04/06 职场文书
python如何获取网络数据
2021/04/11 Python
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android