List类系列(一):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()

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值