使用collections库的Counter计数器进行统计
代码如下:
from collections import Counter
a = [1, 2, 3, 1, 1, 2]
result = Counter(a)
print(result)
关于collections:
Collections这个模块实现了特定目标的容器,以提供Python标准内建容器 dict、list、set、tuple 的替代选择。
一、安装
使用pip工具在线安装,或者去
https://pypi.org/project/collections2/
下载安装包后使用python setup.py install离线进行安装
二、常用类及方法
1.所有类
Counter
:字典的子类,提供了可哈希对象的计数功能
defaultdict
:字典的子类,提供了一个工厂函数,为字典查询提供了默认值
OrderedDict
:字典的子类,保留了他们被添加的顺序
namedtuple
:创建命名元组子类的工厂函数
deque
:类似列表容器,实现了在两端快速添加(append)和弹出(pop)
ChainMap
:类似字典的容器类,将多个映射集合到一个视图里面
2.Counter类
Counter是dict一个子类,主要用来对访问对象的频率进行计数。
常用方法:
elements():返回一个迭代器,每个元素重复计算的个数,如果一个元素的计数小于1,就会被忽略。
most_common([n]):返回一个列表,提供n个访问频率最高的元素和计数
subtract([iterable-or-mapping]):从迭代对象中减去元素,输入输出可以是0或者负数
update([iterable-or-mapping]):从迭代对象计数元素或者从另一个 映射对象 (或计数器) 添加。
1)统计各元素出现的次数
a = [1, 2, 3, 1, 1, 2]
result = Counter(a)
2)获取指定对象的访问次数
1_count = result["1"]
3)查看元素
>>> list(result.elements())
['1', '2', '3']
4)追加对象
>>> c = collections.Counter('hello world hello world hello nihao'.split())
>>> d = collections.Counter('hello world'.split())
>>> c
Counter({'hello': 3, 'world': 2, 'nihao': 1})
>>> d
Counter({'hello': 1, 'world': 1})
>>> c + d
Counter({'hello': 4, 'world': 3, 'nihao': 1})
5)减少对象
>>> c - d
Counter({'hello': 2, 'world': 1, 'nihao': 1})
6)清除
>>> c.clear()
>>> c
Counter()