第五章——字典和结构化数据
字典
字典的索引被称为
键,键及其关联的值称为键-值。字典输入的时候要带花括号{},在使用的时候和列表一样使用中括号[]1
2
3myCat={'size':'fat','color':'gray'}
myCat['size']
'fat'判断两个列表相同,要看两个列表中的对应位置的元素是否相同;判断两个字典是否相同,只需看两个字典的
键-值是否相同即可1
2
3
4
5
6
7
8List=['a','b','c']
List1=['b','a','c']
List==List1
False
dic={1:'a',2:'b',3:'c'}
dic1={2:'b',1:'a',3:'c'}
dic==dic1
True如果访问字典中不存在的键,则会导致
KeyError
字典中的一些方法
keys() values() items()
这三种方法分别对应字典的键、值、键-值对。返回的值是类似列表的值,不是真正的列表,不能被修改
1 | spam={'color':'red','age':18} |
如果想要得到一个列表,可以用list()进行转换
使用in和not in依旧可以检查值是否在字典中,查询时如果不声明,默认按照keys()进行查询
1 | dic={1:'a',2:'b',3:'c'} |
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) |