標籤:使用 一個 print lam app 一個簡單的計數器 tuple 定義 容器
collections 是python內建的一個集合模組。
namedtuple可以很方便的定義一種資料類型,他具備tuple的不可變性,也可以根據屬性來引用,非常方便。
from collections import namedtuplepoint = namedtuple(‘p‘,[‘x‘,‘y‘])p = point(1,2)print(p.x) #1print(p.y) #2
# namedtuple(‘名稱‘, [屬性list]):
Circle = namedtuple(‘Circle‘, [‘x‘, ‘y‘, ‘r‘])
deque可以高效的實現插入和刪除的雙向列表,適用於隊列和棧。
from collections import dequeq= 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 defaultdictdic = 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 OrderedDictdic = 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模組