计数器(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()创建类的参数包括类名称和一个包含元素名称的字符串