1. 主页
  2. Python基础到高级
  3. 字典
  4. 有序/无序字典

有序/无序字典

字典的两个常用到的标准库方法

有序字典
>>> 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

我们要如何帮助您?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注