天天看点

python一个元素在列表里出现的次数_Python统计每个元素在列表中出现的次数,python,List,各...

使用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()