前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术 | Python从零开始系列连载(十一)

技术 | Python从零开始系列连载(十一)

作者头像
灯塔大数据
发布2018-04-18 10:48:22
1.1K0
发布2018-04-18 10:48:22
举报
导读

为了解答大家初学Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极习转载~

上一期学习了Python特色数据类型(元组)下半节,相信大家都已经熟悉啦,我们这一期就来学习Python特色数据类型(字典)吧!

Python特色数据类型(字典)

1

字典

字典,如下图所示:

可以利用关键词查找对应信息

就像是我们可以通过人的身份证号码查到一个人的信息一样

为什么呢?因为每个人的身份证号是唯一的

小明:那可说不定!

。。。

创建字典

字典是一些列键(key)值(value)对组成的,形式如下:

{键1:值1,键2,:值2}

每个键值对用冒号隔开

每对之间用逗号隔开

演示一下创建字典:

划重点:键必须是唯一的,必须是不可变的,如字符串,数字,元组

值可以是任何数据类型

我们按要求创建几个奇葩的字典:

创建空字典:

除了直接用大括号创建字典,还可以用dict()来创建字典

用法如下:

通过放入列表套元组或者元组套列表实现

或者列表套列表 、元组套元组

还记得上节课在元组里讲到的列表和元组的相互转换么?

其实还可以这样创建:

这种情况下,键只能为字符串类型,并且创建的时候字符串不用加引号

不信你试试加上引号变成字符串:

结果确实报错了,用这种方法不能创建键为数值型的字典:

2

访问字典中的值

和列表元组的索引相似,以以下形式访问键对应的值:

字典名[键]

注意:如果查找的键不在字典里,会报错:

看报错信息,是KeyKerror

如果不确定,可以先做个检查,查查字典里是否有某个键:

使用方法:

键 in 字典

返回的是True 或者 False

更新字典

添加、删除、更新修改 字典中的键值对:

3

字典的操作

字典提供了很多方法对字典操作:

dict.keys()

作用:返回包含字典所有key的列表

dict.values()

作用:返回包含字典所有value的列表

dict.items()

作用:返回包含所有(键,值)项的列表

dict.clear()

作用:删除字典中的所有项或元素,无返回值(注意,不是删除字典,而是清空字典内容)

dict.get(key , default=None)

作用:返回字典中key对应的值,若key不存在,则返回default的值(default默认为None)

dict.pop(key [,default])

作用:如果字典中存在key,则删除并返回key对应的value;如果key不存在,且没有给出default值,则引发KeyError异常

dict.setdefault(key , default = None)

作用:如果字典不存在key,则由dict[key] = default为其赋值

dict.update(adict)

作用:将字典adict中键值对添加到dict中

遍历字典只需要遍历它的键:

4

重点!字典的复制

当我们需要复制一份同样的字典,怎么操作呢?

你可能觉得可以这样!

直接用赋值符号,将dict1赋值给dict3

当dict1内容改变之后

发现dict3的内容也改变了!!!!

可是我想要的是买一份和他一样的月饼,他的月饼吃完了,我的月饼也不能消失啊

以上的称为浅复制

什么是'浅'?

可以这样理解,‘浅’指的是,复制的只是一个引用,还记得我们之前说的id()么

id( ) 的作用是找到变量或常量在内存中存的位置,发现dict1和dict3的id一样

所以得出他们虽然是两个变量,但是变量的值是同一个

也就是说,桌上有一盒月饼,可以说是我的,也可以说是你的

你吃了一块

月饼少了一块

所以我的月饼少了一块

因为这是我们共有的月饼

所以浅复制示意图是:

不同的变量名指向了同一个内存区域块

相对应

在字典中,深拷贝可以用引入copy模块实现

这就实现了深拷贝!

好啦,这期的分享先到这里,大家可以按照上面的详细步骤进行练习,我们下周五不见不散~

文章来源: Python爱好者社区

文章编辑:天天

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 灯塔大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建字典
  • 更新字典
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档