1.deque
高效實(shí)現(xiàn)插入和刪除操作的雙向列表,適合用于隊(duì)列和棧
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時(shí),如果引用的Key不存在,就會(huì)拋出KeyError。如果希望key不存在時(shí),返回一個(gè)默認(rèn)值,就可以用defaultdict。有點(diǎn)類(lèi)似于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'
這個(gè)dict如果key不存在的時(shí)候返回默認(rèn)值,其他的跟默認(rèn)的dict是一樣的。
3.namedtuple
#不想建立類(lèi)的時(shí)候使用,簡(jiǎn)單的vo對(duì)象。
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