collections.defaultdict(list)
Python中通过Key访问字典,当Key不存在时,会引发‘KeyError’异常,如下所示:
s=[('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d=dict()
for k, v in s:
d[k].append(v)
print(d)
KeyError: 'yellow'
为了避免这种情况的发生,可以使用collections类中的defaultdict()方法来为字典提供默认值。
s=[('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d=collections.defaultdict(list)
for k, v in s:
d[k].append(v)
print(d)
defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})
该函数返回一个类似字典的对象,即defaultdict,它是Python内建字典类(dict)的一个子类。
collections.namedtuple()
collections.namedtuple('名称', [属性list])
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x, p.y)
1 2
所以 collections.namedtuple() 可以创建一个类似于类 (class) 的结构,类的名称为第一个输入参数,类中的属性是第二个输入参数。