python之collection模塊
阿新 • • 發佈:2018-05-08
排序。 存在 counter 類型 ons 容器類 print 默認值 列表
collections 是python內建的一個集合模塊。
namedtuple可以很方便的定義一種數據類型,他具備tuple的不可變性,也可以根據屬性來引用,非常方便。
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可以高效的實現插入和刪除的雙向列表,適用於隊列和棧。
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
OrderedDict
使用dict時,key是無序的,如果要保證key的順序,可以用OrderedDict。OrderedDict的key是按照插入的順序排列,不是key本身排序。
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和負數)
from collections import Counter
c = Counter(‘abcdeabcdabcaba‘)
print(c)
輸出:Counter({‘a‘: 5, ‘b‘: 4, ‘c‘: 3, ‘d‘: 2, ‘e‘: 1})
python之collection模塊