Python 字典(二)
1. 字典的基本操作
1.1 get 函数:访问字典成员
例子1(get () 函数根据 key(键)获取值):
get 函数可访问字典中不存在的键,当键不存在时返回 None;
1.2 copy 函数:返回一个具有相同键值的新字典
例子2:
深复制 deepcopy
函数 ,复制其包含所有值;
例子3:
1.3 pop 函数:删除字典中对应的键和值
例子4:
popitem()
函数,移出字典中的元素(包含键和值);
例子5:
注意: popitem 函数可以从字典中删除一个元素,不用指定删除的是哪个具体的元素(不针对);系统会根据字典在内存中的情况,自动删除一个元素。
1.4 Fromkeys 函数:用给定的键建立字典
Fromkeys 函数可用给定的键建立新的字典,键默认对应的值为 None;
例子6:
1.5 setdefault 函数:获取给定键相关联的值
类似 get 函数,获取与给定键相关联的值,也能在字典中不包含给定键的情况下设定相应的键值;
例子7:
1.6 updata 函数:用一个字典更新另一个字典
例子8:
1.7 关键字 in 的应用
-
List item
用 in 关键字检查 key 是否存在
例子9:
-
用 in 关键字检查 value 是否存在
例子10:
2. 字典的格式化字符串
Python 使用一个字符串作为模板;模板中有格式符,这些个格式符为真实值预留位置,并表明真实数值应呈现的格式;可以用一个元组传递给模板,每个值对应一个格式符;
例:11:
还能通过字典格式化字符串,Python 有对字符串进行格式化的操作%,每个转换说明符中的%字符后加上键(圆括号括起来),再跟上其他说明元素;
只要所有给出的键都能在字典中找到,就可获得任意数量的转换说明符;
例子12:
解析: 第一个格式符 %(name)s,在格式%s(表示一个字符串)中间加入了一个括号(),括号中对应字典的某个键;第二个格式符 %(age),在格式 %d(表示一个整数)中间加入一个括号(),括号中的内容对应字典的某个键;ble = {‘name’:‘liu’,‘age’:25} 为创建一个新字典 ble,字典的键会对应模板中的格式符 %,当执行 print(bbc % ble) 语句后,程序会对字典中的键与模板中格式符后()里的内容进行匹配,匹配上后,就将字典中键对应的值传递给格式符 %;若字典中找不到格式符%后()里的内容,就会报错;
例子13:
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:
3.3 sorted 函数按 value 值对字典排序
对字典中的 value 排序时,前提是 value 的类型是可排序的,对字典的 value 排序需用到 key 参数;
例子15:
解析: boc.items() 是将 boc 转换为可迭代对象,迭代对象的元素是 (‘d’, 4), (‘c’, 3), (‘b’, 2), (‘a’, 1),items() 函数将字典的元素转化为元组,key 参数对应的 lambda e:e[1]
选取元组中的第二个元素作为参数,采用这种方法可对字典的 value 进行排序;排序后的返回值为一个列表,原字典中的键值对被转换为 list (列表)中的元组;
注意: 无论是哪种排序方式,都不会对原字典造成影响;若想保留排序后的结果,可创建一个新列表。
例子16: