第五章——字典和结构化数据
字典
字典的索引被称为
键
,键及其关联的值称为键-值
。字典输入的时候要带花括号{}
,在使用的时候和列表一样使用中括号[]
1
2
3'size':'fat','color':'gray'} myCat={
'size'] myCat[
'fat'判断两个列表相同,要看两个列表中的对应位置的元素是否相同;判断两个字典是否相同,只需看两个字典的
键-值
是否相同即可1
2
3
4
5
6
7
8'a','b','c'] List=[
'b','a','c'] List1=[
List==List1
False
1:'a',2:'b',3:'c'} dic={
2:'b',1:'a',3:'c'} dic1={
dic==dic1
True如果访问字典中不存在的键,则会导致
KeyError
字典中的一些方法
keys()
values()
items()
这三种方法分别对应字典的键、值、键-值对。返回的值是类似列表的值,不是真正的列表,不能被修改
1 | 'color':'red','age':18} spam={ |
如果想要得到一个列表,可以用list()
进行转换
使用in
和not in
依旧可以检查值是否在字典中,查询时如果不声明,默认按照keys()
进行查询
1 | 1:'a',2:'b',3:'c'} dic={ |
get()
方法
get()
有两个参数:要取得该值的键和一个备用的返回值。如果查询的键不在字典中,返回备用的值;否则返回该键对应的值。get()
的默认返回值为$0$,如果不适用get()
方法,在查询失败的时候会返回KeyError
setdefault()
方法
setdefault()
方法存在两个参数。相当于提供了一个if语句:如果字典中存在查找的键(第一个参数),返回键对应的值;否则将第一个参数作为键,第二个参数作为第一个参数对应的值加入到字典中
1 | dic={1:'a',2:'b',3:'c'} |
相当于:
1 | dic={1:'a',2:'b',3:'c'} |
输出dic
会发现输出均为:
1 | {1: 'a', 2: 'b', 3: 'c', 4: 'd'} |
使用setdefault()
可以确保一个键的存在
可以利用setdefault()
对字符串中出现的字符进行计数:
1 | s='qwertyuioplkjhgfdsazxcvbnm' |
输出结果为:
1 | {'q': 1, 'w': 1, 'e': 1, 'r': 1, 't': 1, 'y': 1, 'u': 1, 'i': 1, 'o': 1, 'p': 1, 'l': 1, 'k': 1, 'j': 1, 'h': 1, 'g': 1, 'f': 1, 'd': 1, 's': 1, 'a': 1, 'z': 1, 'x': 1, 'c': 1, 'v': 1, 'b': 1, 'n': 1, 'm': 1} |
pprint
模块的简单应用
将上述代码导入pprint
模块之后,使用pprint()
输出:
1 | import pprint |
输出结果为:
1 | {'a': 1, |
pprint()
对于包含列表等的字典特别有用
使用pformat()
可以将pprint()
输出的字典当做字符串来储存。以下两行代码是等效的:
1 | pprint.pprint(count) |