字典的两个常用到的标准库方法
有序字典
>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d[0] = 'a'
>>> d[1] = 'b'
>>> d[2] = 'c'
>>> d
OrderedDict([(0, 'a'), (1, 'b'), (2, 'c')])
>>> for k,v in d.items():
... print(k,v)
...
0 a
1 b
2 c
有序字典,会保持插入的顺序,当需要一个key->value结构,并且数据位置不能改变顺序的时候,就用到有序字典。
默认字典
>>> def f(): 创建一个函数
... print('f is called')
... return 'a'
...
>>> d = defaultdict(f) 定义一个默认字典,参数是上面定义的函数
>>> d['b'] 获取字典d中的key 'b',显然在d中是没有'b'这个key的因此,执行了函数,并且将函数的返回值,赋值给了 'b'这个key的value,因此 'b' 在字典d中就定义了,key是b,value是函数的返回值a
f is called
'a'
>>> d['b'] 获取b的value值,得到了a
'a'
defaultdict初始化的时候,需要传入一个函数,这个函数也叫工厂函数,当我们使用下标访问这个key的时候,
如果这个key不存在,defaultdict会自动调用初始化传入的函数,生成一个对象作为这个key的value