一.collections
1. namedtuple
namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print p.x
print p.y
2.deque
deque是为了实现高效插入和高效删除操作的双向列表,适合用于队列和栈
from collections import deque
q = deque(['a', 'b', 'c'])
q.append('x') # 往尾部添加
q.appendleft('y') # 往头部添加
print q # deque(['y', 'a', 'b', 'c', 'x'])
q.pop() # 弹出元素
q.popleft()
print q # deque(['a', 'b', 'c'])
3.defaultdict
使用dict时,如果引用的key不存在,就会抛出KeyError。如果希望Key不存在时,返回一个默认值,就可以使用defaultdict。
注意:OrderedDict的Key会按照插入的顺序排序,不是Key本身排序。
from collections import defaultdict
dd = defaultdict(lambda: 'N/A')
dd['key1'] = 'abc'
print dd['key1'] # key1存在,返回‘abc’
print dd['key2'] # key2不存在,返回默认值 ‘N/A’
4.OrderedDict