python之collection模塊

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})
相關文章
相關標籤/搜索