1most_common(),返回乙個列表,包含counter中n個最大數目的元素,如果忽略n或者為none,most_common()將會返回counter中的所有元素,元素有著相同數目的將會以任意順序排列;#獲取元素個數,返回字典
23 >>> from collections import
counter
4 >>> str='
12312312312
'5 >>>counter(str)
6 counter()
7 >>>dict(counter(str))
8 9 >>> l = [1,2,3,4,5]
10 >>>counter(l)
11 counter()
12 >>> d=
13 >>>counter(d)
14 counter()
>>> counter('what do you think you are good
').most_common(3)[('
', 6), ('
o', 5), ('
h', 2)]
subtract(),從乙個可迭代物件中或者另乙個對映(或counter)中,元素相減,類似於dict.update(),但是subtracts 數目而不是替換它們,輸入和輸出都有可能為0或者為負;
而update() 為相加
>>> c=counter()>>> d=counter()
>>>c.substract(d)
>>>c
counter()
namedtuple
是乙個函式,它用來建立乙個自定義的tuple
物件,並且規定了tuple
元素的個數,並可以用屬性而不是索引來引用tuple
的某個元素。
這樣一來,我們用namedtuple
可以很方便地定義一種資料型別,它具備tuple的不變性,又可以根據屬性來引用,使用十分方便。
deque是棧和佇列的一種廣義實現,deque是"double-end queue"的簡稱;deque支援執行緒安全、有效記憶體地以近似o(1)的效能在deque的兩端插入和刪除元素,儘管list也支援相似的操作,但是它主要在固定長度操作上的優化,從而在pop(0)和insert(0,v)(會改變資料的位置和大小)上有o(n)的時間複雜度。#命名元組
#from collections import namedtuple##
p = namedtuple('point', ['x', 'y'])
#p1 = p(4,3)
#p2 = p(3,4)
#print(p1.x)
#print(p2.y)
#print(p(4,3))
#雙端佇列
大部分列表的方法在這裡也適用
#from collections import deque
#l = [1,2]
#dq = deque(l)##
#dq.insert(4,5)
#print(dq.pop()) # 移除和返回deque中最右側的元素
#print(dq.popleft()) # 移除和返回deque中最左側的元素,
#print(dq)
# dq.clear() # 清零,元素長度為0
# dq.count(2) # 返回元素的個數
## 有序的字典
#from collections import ordereddict##
od = ordereddict([('a', 1), ('b', 2), ('c', 3)])
#print(od)
#print(od['b'])
#for i in od.items():
#print(i)
defaultdict
使用注意預設值是呼叫函式返回的,而函式在建立dict
時,如果引用的key不存在,就會丟擲keyerror
。如果希望key不存在時,返回乙個預設值,就可以用defaultdict
:
defaultdict
物件時傳入。
除了在key不存在時返回預設值,defaultdict
的其他行為跟dict
是完全一樣的。
#預設字典
#from collections import defaultdict
#d = defaultdict(lambda : 0)
#print(d['a']) # 沒有a這個鍵,返回0
Python內建庫collections使用集錦
collections中有以下類 class name description namedtuple 用於建立具有命名字段的元組子類的工廠函式 deque 類似列表的容器,兩端都有快速追加和彈出 chainmap 類似於dict的類,用於建立多個對映的單個檢視 counter 用於計算可雜湊物件的d...
python之Collections容器資料型別
1 ordereddict字典的子類 常規dict並不跟蹤插入順序,迭代處理時會根據鍵在雜湊表中儲存的順序來生成值。import collections a a d 1 a c 3 a b 4 a for k,v in a.items print k,v c 3b 4 d 1 在ordereddic...
python模組之collections模組
collections模組 提供了一些額外的資料型別,供我們使用。namedtuple 命名元組 from collections import namedtuple 命名元組 namedtuple typename,field names typename元組的名稱 field names元組中元...