Python 字典(二)

1. 字典的基本操作

1.1 get 函数:访问字典成员

例子1(get () 函数根据 key(键)获取值):
2021-8-8
get 函数可访问字典中不存在的键,当键不存在时返回 None;

1.2 copy 函数:返回一个具有相同键值的新字典

例子2:
2021-8-8
深复制 deepcopy 函数 ,复制其包含所有值;
例子3:
2021-8-8

1.3 pop 函数:删除字典中对应的键和值

例子4:
2021-8-8
popitem() 函数,移出字典中的元素(包含键和值);
例子5:
2021-8-8
注意: popitem 函数可以从字典中删除一个元素,不用指定删除的是哪个具体的元素(不针对);系统会根据字典在内存中的情况,自动删除一个元素。

1.4 Fromkeys 函数:用给定的键建立字典

Fromkeys 函数可用给定的键建立新的字典,键默认对应的值为 None;
例子6:
2021-8-8

1.5 setdefault 函数:获取给定键相关联的值

类似 get 函数,获取与给定键相关联的值,也能在字典中不包含给定键的情况下设定相应的键值;
例子7:
2021-8-8

1.6 updata 函数:用一个字典更新另一个字典

例子8:
2021-8-8

1.7 关键字 in 的应用

  1. List item
    用 in 关键字检查 key 是否存在
    例子9:
    2021-8-8

  2. 用 in 关键字检查 value 是否存在
    例子10:
    2021-8-8

2. 字典的格式化字符串

Python 使用一个字符串作为模板;模板中有格式符,这些个格式符为真实值预留位置,并表明真实数值应呈现的格式;可以用一个元组传递给模板,每个值对应一个格式符;
例:11:
2021-8-9

还能通过字典格式化字符串,Python 有对字符串进行格式化的操作%,每个转换说明符中的%字符后加上键(圆括号括起来),再跟上其他说明元素;
只要所有给出的键都能在字典中找到,就可获得任意数量的转换说明符;
例子12:
2021-8-9

解析: 第一个格式符 %(name)s,在格式%s(表示一个字符串)中间加入了一个括号(),括号中对应字典的某个键;第二个格式符 %(age),在格式 %d(表示一个整数)中间加入一个括号(),括号中的内容对应字典的某个键;ble = {‘name’:‘liu’,‘age’:25} 为创建一个新字典 ble,字典的键会对应模板中的格式符 %,当执行 print(bbc % ble) 语句后,程序会对字典中的键与模板中格式符后()里的内容进行匹配,匹配上后,就将字典中键对应的值传递给格式符 %;若字典中找不到格式符%后()里的内容,就会报错;
例子13:
2021-8-9

3. 字典的排序

3.1 概述

字典反映的是一种映射关系,在储存过程中是无序的,理所当然输出字典内容时也是无序的;但有时候也要对字典进行一定的排序,Python 的字典排序分为按 “键”排序 与按 “值”排序

3.2 sorted 函数按 key 值对字典排序

语法:sorted(iterable,key,reverse)
参数: iterable —— 表示可迭代的对象,可以为 d.items()、d.keys()等;
key —— 一个函数,用来选取参与比较的元素,key 参数对应的 lambda 表达式的意思是选取元组中的一个元素作为比较参数(若写成 key = lambda item:item[0] 则是选取第一个元素作为比较对象,就是 key 值作为比较对象;
revers —— 用来指定排序为顺序或倒序,reverse = True 为倒序,reverse = False 为顺序,默认 reverse = False 顺序
例子14:
2021-/8-9

3.3 sorted 函数按 value 值对字典排序

对字典中的 value 排序时,前提是 value 的类型是可排序的,对字典的 value 排序需用到 key 参数;
例子15:
2021-8-9
解析: boc.items() 是将 boc 转换为可迭代对象,迭代对象的元素是 (‘d’, 4), (‘c’, 3), (‘b’, 2), (‘a’, 1),items() 函数将字典的元素转化为元组,key 参数对应的 lambda e:e[1] 选取元组中的第二个元素作为参数,采用这种方法可对字典的 value 进行排序;排序后的返回值为一个列表,原字典中的键值对被转换为 list (列表)中的元组
注意: 无论是哪种排序方式,都不会对原字典造成影响;若想保留排序后的结果,可创建一个新列表。
例子16:
2021-8-9

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值