1.deque
高效实现插入和删除操作的双向列表,适合用于队列和栈
In [31]: from collections import deque
In [32]: q = deque(['1','2','3'])
In [33]: q.append('4')
In [34]: q.appendleft('5')
In [35]: q
Out[35]: deque(['5', '1', '2', '3', '4'])
2.defaultdict
使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用defaultdict。有点类似于scala的getOrElse方法。
In [37]: from collections import defaultdict
In [38]: dict = defaultdict(lambda:'N/A')
In [39]: dict['key1'] = 'abc'
In [40]: dict['key1']
Out[40]: 'abc'
In [41]: dict['key2']
Out[41]: 'N/A'
这个dict如果key不存在的时候返回默认值,其他的跟默认的dict是一样的。
3.namedtuple
#不想建立类的时候使用,简单的vo对象。
In [10]: from collections import namedtuple
In [11]: Point = namedtuple('Point',['x','y'])
In [12]: p = Point(1,2)
In [13]: p.x
Out[13]: 1
In [14]: p.y
Out[14]: 2