Python Counter详解

简介: Counter 是 Python collections 模块中的一个类,用于统计可哈希对象的出现次数。它提供了一种方便的方式来计数元素,返回一个字典,其中元素作为键,出现次数作为值。下面详细介绍 Counter 类的使用方法

Counter 是 Python collections 模块中的一个类,用于统计可哈希对象的出现次数。它提供了一种方便的方式来计数元素,返回一个字典,其中元素作为键,出现次数作为值。下面详细介绍 Counter 类的使用方法:


1.创建 Counter 对象:

可以通过传递一个可迭代对象给 Counter 构造函数来创建一个计数器对象。可迭代对象可以是列表、元组、字符串等。


from collections import Counter
# 创建一个计数器
c = Counter([1, 2, 3, 1, 2, 1])

2.访问元素的计数:

使用元素作为键,可以通过索引操作符 [] 来获取元素的计数。


print(c[1])  # 输出: 3
print(c[2])  # 输出: 2
print(c[3])  # 输出: 1

3.统计元素的个数:

Counter 对象提供了 elements() 方法,返回一个迭代器,按照计数的顺序重复元素,可以用于遍历元素。


for element in c.elements():
    print(element)

4.获取最常见的元素:

使用 most_common() 方法可以获取计数最高的元素及其计数值。可以传递一个参数 n 来指定返回的元素个数,默认返回全部元素。


print(c.most_common())     # 返回所有元素和计数值
print(c.most_common(2))    # 返回最常见的两个元素及其计数值

5.更新计数::

可以使用 update() 方法来更新计数器对象。可以传递一个可迭代对象或另一个计数器对象作为参数。


c.update([1, 2, 4])  # 更新计数器,增加元素 1 和 2 的计数,添加元素 4

6.其他常用方法:

  • keys():返回计数器中的所有元素。
  • values():返回计数器中的所有计数值。
  • items():返回计数器中的所有元素及其计数值的键值对。
print(c.keys())     # 输出: dict_keys([1, 2, 3, 4])
print(c.values())   # 输出: dict_values([4, 3, 1, 1])
print(c.items())    # 输出: dict_items([(1, 4), (2, 3), (3, 1), (4, 1)])

Counter 类提供了一种简单而强大的方式来统计元素的出现次数。它在处理频率分析、计数问题和数据集摘要等场景中非常有用。通过使用 Counter,可以方便地获取元素的计数,找到最常见的元素,或者进行元素集合的交集、并集和差集等操作。


相关文章
|
机器学习/深度学习 算法 数据挖掘
聚类方法介绍
聚类方法介绍
1919 0
|
1月前
|
机器学习/深度学习 数据采集 算法
大模型应用:K-Means/LDA + 千问大模型:无监督文本自动打标完整方案.85
本文介绍“聚类算法+大模型”无监督自动打标方案:先用K-Means/LDA对海量无标签文本(如电商评论、客服工单)自动分组,再由大模型为每簇生成可理解的业务标签与语义解释,实现从“类1/类2”到“物流慢”“价格争议”等高价值洞察的跃迁,显著降本增效。
220 6
|
6月前
|
消息中间件 缓存 前端开发
WebSocket 与 MQTT 在即时通讯中的深度对比与架构选型指南
WebSocket 是双向通信通道,适合前端实时交互;MQTT 是轻量级消息协议,支持发布/订阅与可靠传输。二者互补,常结合使用:前端通过 WebSocket 接入,后端以 MQTT 实现高并发消息分发,构建可扩展的现代即时通讯系统。
1274 17
|
7月前
|
Prometheus 监控 Cloud Native
78_资源监控:NVIDIA-SMI进阶
在大语言模型(LLM)训练和推理过程中,GPU资源的高效监控和管理至关重要。随着模型规模的不断增长和计算需求的提升,如何精确监控GPU利用率、及时发现性能瓶颈并进行优化,成为AI研究人员和工程师面临的重要挑战。NVIDIA-SMI作为NVIDIA官方提供的GPU监控工具,提供了丰富的功能来监控和管理GPU资源。本文将深入探讨NVIDIA-SMI的进阶使用方法,以及如何利用其与其他工具结合构建高效的GPU利用率可视化监控系统。
1178 0
|
SQL 资源调度 数据库连接
Hive怎么调整优化Tez引擎的查询?在Tez上优化Hive查询的指南
在Tez上优化Hive查询,包括配置参数调整、理解并行化机制以及容器管理。关键步骤包括YARN调度器配置、安全阀设置、识别性能瓶颈(如mapper/reducer任务和连接操作),理解Tez如何动态调整mapper和reducer数量。例如,`tez.grouping.max-size` 影响mapper数量,`hive.exec.reducers.bytes.per.reducer` 控制reducer数量。调整并发和容器复用参数如`hive.server2.tez.sessions.per.default.queue` 和 `tez.am.container.reuse.enabled`
1795 0
|
SQL 存储 Serverless
SQL语句拆分时间字段的技巧与方法
在数据库操作中,经常需要处理时间数据
1688 1
|
存储 固态存储 Linux
如何看电脑的配置
**电脑配置关乎日常使用体验,包括CPU、内存、硬盘、显卡、主板和操作系统等。要查看配置,可右击“此电脑”选“属性”查看基础信息,使用任务管理器检查性能,运行"msinfo32"获取详细系统信息,或借助如CPU-Z等第三方工具。了解配置助于选购和优化电脑。**
如何看电脑的配置
|
存储 API C++
ROS Topic 相关API接口与命令行介绍
ROS Topic 相关API接口与命令行介绍
1766 0