【Python入门与进阶】 序列-字典

【原文】【Python入门与进阶】 序列-字典

0:导语

》》a:dict是我们第一个碰到的key-value的键值对容器
》》b:方法很多都跟key-value有关。
》》c:方法太多,慢慢来

1:字典概述

(其实,字典的作用和列表类似,都是用来存储对象的容器)
但是呢,它保存的每个数据,都有一个key-value

定义:字典是一个对象 ,可以保存有映射关系的数据。
叫做键值对(key-value)结构

特点:

  • key唯一,根据key查询value
  • 每个字典中都可以有多个键值对
  • 每一个键值对我们称其为一项(item)
  • 在查询元素时,字典的效率是非常快的

(说白了就是key-value键值对数据)
比如:

刘备:孙尚香
宝x:马xx

2: 创建字典

2.1:大括号创建

(这里使用类比的想法来理解,比较方便)
列表使用[] ,元组使用(),字典的用{}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u5VI0rdA-1583504991959)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e6217523d156.png)]

如图:一个{},就创建一个空的字典,还没体现key-value

语法:{k1:v1,k2:v2,k3:v3}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vuhdGdEB-1583504991960)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e6217abbc670.png)]

说明
1)使用 冒号 隔开 k,v
2)多个kv ,使用逗号隔开

2.2:使用 dict()函数来创建字典

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zsHKQsOy-1583504991961)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e621835f320e.png)]
说明
1)使用 等号隔开 k,v
2)多个kv ,使用逗号隔开

2.3:一个包含有双值子序列的序列转换为字典

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7vXQsXIG-1583504991961)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e6218fa47b3b.png)]
说明:
1)双值序列,序列中只有两个值,[1,2] (‘a’,3) ‘ab’
2) 子序列,如果序列中的元素也是序列,那么我们就称这个元素为子序列

2.3:len函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5w165EB8-1583504991961)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e6219549460c.png)]

如图:

len函数 返回kv的个数

2.4: in

检查字典中是否包含指定的键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p8y5nPe6-1583504991961)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e6219f4e2034.png)]

如图:如果key存在于字典中,那么 式子的结果是 True

1)not in 检查字典中是否不包含指定的键

2.5:根据键来获取值

file

说明
1) d[key] 如果key对应的value存在,那么返回value,否则抛出异常 KeyError
2)get(key[, default]) 该方法用来根据键来获取字典中的值

file

说明 参1表示键,参2表示默认值,即key对应的value不存在,将默认值返回

2.6: 修改字典

》》1:等号修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3gZnKhX-1583504991962)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e621ba179aaa.png)]

图中,第一次赋值为添加,第二次赋值为修改

说明:
1)d[key] = value 如果key存在则覆盖,不存在则添加

》》2:setdefault方法修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yutr1fMD-1583504991962)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e621c5bd3f9c.png)]
(为什么等号可以解决的事,还要搞个这么麻烦的方法调用呢?面向对象!)

说明:

1)setdefault(key[, default]) 可以用来向字典中添加key-value
如果key已经存在于字典中,则返回key的值,不会对字典做任何操作
如果key不存在,则向字典中添加这个key,并设置value

》》3:update([other])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhZJXdYX-1583504991962)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e621d52331a8.png)]

如图:
两个dict 合并,由于dict 要求key是不能重复的,那么两个dict 合并就出现了key 重复,
那就决定一下覆盖规则,这里是d2覆盖d的
说明

1)将其他的字典中的key-value添加到当前字典中
2)如果有重复的key,则后边的会替换到当前的

》》4:del删除

file

可以使用 del 来删除字典中的 key-value

》》5:popitem()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KwthbBVX-1583504991963)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e62236317de1.png)]

如图:

最后一个键值对liubei被删除 了

说明:
1)随机删除字典中的一个键值对,一般都会删除最后一个键值对
2) 删除之后,它会将删除的key-value作为返回值返回
3)返回的是一个元组,元组中有两个元素,第一个元素是删除的key,第二个是删除的value

KeyError: ‘popitem(): dictionary is empty’

当使用popitem()删除一个空字典时,会抛出异常

(其实,你要删除,dict里面肯定得有kv,要不然你调这个方法也没什么意义对不?)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6o6PrbUA-1583504991963)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e622445ecd64.png)]

如图:调用三次删除 baoqiang,第一次是因为存在,第二次不存在报错,第三次因为设置默认值

说明:
1)pop(key[, default])根据key删除字典中的key-value, 会将被删除的value返回!
2)如果删除不存在的key,会抛出异常
3)如果指定了默认值,再删除不存在的key时,不会报错,而是直接返回默认值

3:clear()

用来清空字典

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-od63COjP-1583504991963)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e6224a25b0c5.png)]

4: copy()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0aczuyA5-1583504991963)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e623fb49baf8.png)]

如图
调用copy方法得到d2 ,内容跟原来d是一样的。(可以将d2看成d的副本,是另一个对象 )

说明:
1)该方法用于对字典进行浅复制
2)复制以后的对象,和原对象是独立,修改一个不会影响另一个
3) 注意,浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V9VSkWS6-1583504991963)(https://www.xuepokeji.com/wp-content/uploads/2020/03/5e625b8119124.png)]

如图 d2为d的copy,但是内部的一个dict 是没有产生副本的,也就是只有一份。
所以改d2的name ,其实改的就是d的name,内部的dict没有产生拷贝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翁老师的教学团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值