collections 是python內建的一個集合模塊。python
namedtuple能夠很方便的定義一種數據類型,他具有tuple的不可變性,也能夠根據屬性來引用,很是方便。app
from collections import namedtuple point = namedtuple('p',['x','y']) p = point(1,2) print(p.x) #1 print(p.y) #2
# namedtuple('名稱', [屬性list]):
Circle = namedtuple('Circle', ['x', 'y', 'r'])
deque能夠高效的實現插入和刪除的雙向列表,適用於隊列和棧。blog
from collections import deque q= deque(['a','b','c']) q.append('x') q.appendleft('y') print(q) #deque(['y', 'a', 'b', 'c', 'x'])
defaultdict排序
使用dict時,若是key不存在,則拋出KeyError,若是但願key不存在時,返回一個默認值,能夠用defaultdict。隊列
from collections import defaultdict dic = defaultdict(lambda :'N/A') dic['k1'] = 'abc' print(dic['k1']) #‘abc’ print(dic['k2']) #N/A
OrderedDictio
使用dict時,key是無序的,若是要保證key的順序,能夠用OrderedDict。OrderedDict的key是按照插入的順序排列,不是key自己排序。class
from collections import OrderedDict dic = dict([('a',1),('b',2),('c',3)]) dic1 = OrderedDict([('a',1),('b',2),('c',3)]) print(dic.keys()) #dict_keys(['a', 'b', 'c']) print(dic1.keys()) #odict_keys(['a', 'b', 'c'])
Counter是一個簡單的計數器,目的是用來跟蹤值出現的次數。它是一個無序的容器類型,以字典的鍵值對形式存儲。其中元素爲key,個數爲value. 計數值能夠是任意的interger(含0和負數)import
from collections import Counter
c = Counter('abcdeabcdabcaba')
print(c)
輸出:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})