計數器(Counter)
雙向隊列(deque)
默認字典(defaultdict)
有序字典(OrderedDict)
可命名元組(namedtuple)
使用以上類型時需要導入模塊 from collections import *
1. Counter
Counter 作爲字典(dict)的一個子類用來進行hashtable計數,將元素進行數量統計、計數後返回一個字典,鍵值爲元素:值爲元素個數
>>> from collections import *
>>> a = 'absolutely'
>>> Counter(a)
Counter({'l': 2, 'a': 1, 'b': 1, 's': 1, 'o': 1, 'u': 1, 't': 1, 'e': 1, 'y': 1})
>>>
# most_common(int) 按照元素出現的次數進行從高到低的排序,返回前int個元素的字典
>>> Counter(a).most_common(3)
[('l', 2), ('a', 1), ('b', 1)]
>>>
>>> c=Counter(a).elements()
>>> for i in c:
print(i)
a
b
s
o
l
l
u
t
e
y
>>>
deque 包含在文件_collections.py中,屬於高性能的數據結構(High performance data structures)之一.可以從兩端添加和刪除元素,常用的結構是它的簡化版。
>>> dq = deque('abc123')
>>> dq.append('right')
>>> dq.appendleft('left')
>>> dq
deque(['left', 'a', 'b', 'c', '1', '2', '3', 'right'])
>>>
默認字典,是字典的一個子類,繼承有字典的方法和屬性,默認字典在進行定義初始化的時候可以指定字典值得默認類型:
>>> dic = collections.defaultdict(dict)
>>> dic['k1'].update({'k2':'aaa'})
>>> print(dic)
我看看一下傳統的字典類型
>>> b['k1'].append('2')
# TypeError: 'type' object is not iterable
4.OrderedDict
OrderDict 叫做有序字典,也是字典類型(dict)的一個子類,是對字典的一個補充。
>>> dic2 = OrderedDict()
>>> dic2['a'] = '123'
>>> dic2['b'] = 'jjj'
>>> dic2['c'] = 'abc'
>>> dic2['d'] = '999'
>>> for k, v in dic2.iteritems():
print('有序字典:%s:%s' %(k,v))
nametuple 的創建是由自己的類工廠nametuple()進行創建,而不是由標準的元組來進行實例化,通過nametuple()創建類的參數包括類名稱和一個包含元素名稱的字符串