教你Python的collections.Counter类型

Python Counter详解 Counter 是 Python collections 模块中的一个类,用于统计可哈希对象的出现次数。它提供了一种方便的方式来计数元素,返回一个字典,其中元素作为键,出现次数作为值。 阅读详情

collections.Counter 类型可以用来给可散列的对象计数,或者是当成多重集合来使用 —— 多重集合就是集合里的元素可以出现多次1。

collections.Counter 类型类似于其它编程语言中的 bags 或者 multisets2。

 

(1)基本用法

counter = collections.Counter(['生物', '印记', '考古学家', '生物', '枣', '印记'])

logging.info('counter -> %s', counter)

counter.update(['化石', '果实', '枣', '生物'])

logging.info('counter -> %s', counter)

most = counter.most_common(2)

logging.info('most -> %s', most)

运行结果:

INFO - counter -> Counter({'生物': 2, '印记': 2, '考古学家': 1, '枣': 1})

INFO - counter -> Counter({'生物': 3, '印记': 2, '枣': 2, '考古学家': 1, '化石': 1, '果实': 1})

INFO - most -> [('生物', 3), ('印记', 2)]

示例程序中,首先使用 collections.Counter() 初始化 counter 对象,这时 counter 对象中就已经计算好当前的词语出现次数;collections.Counter() 入参为可迭代对象,比如这里的列表。接着使用 update() 方法传入新词语列表,这时 counter 对象会更新计数器,进行累加计算;最后使用 counter 对象的 most_common() 方法打印出次数排名在前 2 名的词语列表。

 

(2)集合运算

collections.Counter 类型还支持集合运算。

a = collections.Counter({'老虎': 3, '山羊': 1})

b = collections.Counter({'老虎': 1, '山羊': 3})

logging.info('a -> %s', a)

logging.info('b -> %s', b)

logging.info('a+b -> %s', a + b)

logging.info('a-b -> %s', a - b)

logging.info('a&b -> %s', a & b)

logging.info('a|b -> %s', a | b)

运行结果:

INFO - a -> Counter({'老虎': 3, '兔子': 2, '山羊': 1})

INFO - b -> Counter({'山羊': 3, '老虎': 1})

INFO - a+b -> Counter({'老虎': 4, '山羊': 4, '兔子': 2})

INFO - a-b -> Counter({'老虎': 2, '兔子': 2})

INFO - a&b -> Counter({'老虎': 1, '山羊': 1})

INFO - a|b -> Counter({'老虎': 3, '山羊': 3, '兔子': 2})

  • 示例中的 a 与 b 都是 Counter 类型对象。这里还演示了 Counter 对象可以使用键值对的方式进行初始化操作;
  • a+b 表示并集操作,包含所有元素;
  • a-b 表示差集操作;
  • a&b 表示交集操作;
  • a|b 比较特殊,首先把所有的键囊括进来,然后比较两个对象中的对应键的最大值,作为新对象的值。比如 a 对象中有 '老虎': 3,b 对象中有 '老虎': 1,那么最后得到的对象是 '老虎': 3。

(3)正负值计数

Counter 类型中的计数器还支持负值。


c = collections.Counter(x=1, y=-1)

logging.info('+c -> %s', +c)

logging.info('-c -> %s', -c)

运行结果:

INFO - +c -> Counter({'x': 1})

INFO - -c -> Counter({'y': 1})

 

通过简单的 +/- 作为 Counter 类型对象的前缀,就可以实现正负计数过滤。Python 的这一设计很优雅。

最后多说一句,想学习Python可联系小编,这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以进q裙1160381299领取。

本文章素材来源于网络,如有侵权请联系删除。

 

解码 collections.Counter - 频率统计的利器 在数据处理的世界里,统计频率是一项基础却无处不在的任务。无论是分析文本中的词频、统计投票结果,还是处理多重集合,Python 开发者总需要一个高效的工具来完成这些工作。在“Python 解码”系列的第四篇中,我们将聚焦——一个专为计数而生的类,它以简洁的 API 和强大的功能,成为频率统计的利器。你是否曾为手动统计元素出现次数而烦恼?或者在处理复杂数据集时感到无从下手?通过本文,你将发现Counter如何化繁为简,让计数任务变得轻松而优雅。让我们一起解锁这个 Python 标准库中的隐藏瑰宝吧! 阅读详情

相关推荐

Python 中的 collections.Counter 模块详解

Python 的标准库提供了丰富的数据结构和工具,其中 collections.Counter 是一个强大的类,用于计算可哈希对象的出现频率。本文将深入探讨 collections.Counter 的功能、示例代码以及详细解释其内部机制,以帮助你更好地利用它来解决实际问题。

专注于深入研究多种编程语言,以实战为导向,逐步拓展开发技能,提升工程化编码和思维能力,展现无敌技术实力。 474

python计数器—collections.Counter

Counter计数器,最主要的作用是计算“可迭代序列”中各个元素(element)的数量。具体用法如下: 使用前导入: from collections import Counter 1.统计“可迭代序列”中每个元素出现的次数 对列表/字符串作用 #对列表作用 list=[1,2,2,2,3,6,6,6,6] print(Counter(list)) #Counter({6: 4, 2: 3, 1: 1, 3: 1}) #对字符串作用 temp=Counter('aabbcdeffgg

Judy18的博客 7260

玩转 Milvus(二):在 Ubuntu 22.04(WSL2)上安装 Milvus

本文详细介绍了在Ubuntu 22.04(WSL2)环境下安装Milvus向量数据库的两种单机模式:Milvus Lite和Milvus Standalone。Milvus Lite作为轻量级Python库,适合快速学习和小规模实验,只需通过pip安装即可使用。Milvus Standalone则支持Docker和Docker Compose两种部署方式,适合开发测试或小规模生产环境。文章对比了不同安装方式的优缺点,并提供了验证案例和常见问题解答,帮助开发者快速上手,实现简单的语义搜索功能。

企业级后端与 AI 应用开发双线探索 2507

【函数】 collections.Counter()

Python标准库 collections 里的 counter() 函数是一个计数器工具,用于统计可迭代对象中元素出现的次数,并返回一个字典(key-value)key 表示元素,value 表示各元素 key 出现的次数,可为任意整数 (即包括0与负数)。任何可迭代对象,如列表、元组、字符串、字典等。Ais a。

qq_41934715的博客 3332

设计的多实例引用(Multiple Instances of a Design Reference)

一、什么是“设计的多实例引用” 在层次化的设计中,我们经常会将一个module例化多份,这些例化的instance就是设计的module的多实例引用。 二、为什么要解决多实例引用 三、怎么解决多实例引用 ...

kevindas的博客 3719

Seedance 2.5本地部署指南:AI生图与视频生成的完整实践

最近在AI生成内容领域,本地部署方案越来越受到开发者关注。特别是Seedance 2.5的发布,让很多原本依赖云端服务的用户开始转向本地化解决方案。本文将从实际使用角度出发,完整介绍Seedance 2.5的本地部署流程、功能特性对比以及实际应用技巧。 1. Seedance 2.5核心特性解析 1.1 什么是Seedance 2.5 Seedance 2.5是一款开源的AI生图和视频生成工具,支持在本地环境运行,无需联网即可实现高质量的图像和视频生成。相比之前的2.0版本,2.5在生成质量、运行效率和功能

weixin_42566121的博客 1676

Python的collections.Counter类型,师兄教你如何去掌握python的collections.Counter类型,熟练运用python collections.Counter类型。

collections.Counter 类型可以用来给可散列的对象计数,或者是当成多重集合来使用 —— 多重集合就是在集合里的元素可以多次出现。collections.Counter 类型其它编程语言中的 bags 或者 multisets2有相似之处。

kelai_6792的博客 1032

java实现长短期记忆人工神经网络LSTM(附完整源码)

java实现长短期记忆人工神经网络LSTM(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1691

python counter_教你Python的collections.Counter类型

collections.Counter 类型可以用来给可散列的对象计数,或者是当成多重集合来使用 —— 多重集合就是集合里的元素可以出现多次1。collections.Counter 类型类似于其它编程语言中的 bags 或者 multisets2。(1)基本用法counter = collections.Counter(['生物', '印记', '考古学家', '生物', '枣', '印记'])...

weixin_39517868的博客 165

BDD测试用例:Playwright的MCP Server实战

Playwright MCP Server建立了大模型和真实的浏览环境之间的桥梁,可以让大模型操作多款浏览器完成测试任务。

Criss@陈磊 450

B.3【智能标注】:基于Labelstudio的UIE半监督深度学习的智能标注方案(云端版),提效。

Label Studio 所提供的 Machine Learning Backend 提供了一个比较灵活的辅助人工标注的框架,我们通过它确实可以加快 nlp 数据的标注Label Studio 的 enterprise 版本提供了 Active Learning 的流程,不过从其描述看这个流程并不完美,尤其是 fit 部分,由于 Label Studio 低估了「Train」所花费的时间,所以每次标注都自动训练的流程可能并不会那么顺滑(会在链接时候等待一段时间)

丨汀、的博客 1840

Python collections.Counter()用法

Python collections.Counter用法什么是collectionsCounterCounter操作例子 什么是collections collections在python官方文档中的解释是High-performance container datatypes,直接的中文翻译解释高性能容量数据类型。 它总共包含五种数据类型: 其中Counter中文意思是计数器,也就是我们常用于...

qwe1257的博客 16万+

聊聊蓝牙配对技术-CTKD OVER BR/EDR

摘要:本文探讨了蓝牙设备通过跨传输密钥派生(CTKD)机制实现双模连接的技术细节。研究发现,手机在连接双模耳机时优先通过BR/EDR配对,再利用CTKD派生BLE连接所需的密钥。关键条件包括:设备地址一致性、启用安全连接(Secure Connection)及禁用justworks配对方式。文章详细剖析了从BR/EDR链路密钥派生BLE长期密钥(LTK)的算法流程,重点解析了H6/H7加密函数的作用机制与安全差异。研究还通过HCI日志验证了密钥交换和加密建立的完整过程,指出蓝牙5.1版本对CTKD安全性的强

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2697

Python collections模块之Counter()详解

Python collections模块之Counter详解Counter()most_common()elements()update()subtract() collections模块 ==> Python标准库,数据结构常用的模块;collections包含了一些特殊的容器,针对Python内置的容器,例如list、dict、set和tuple,提供了另一种选择。 collections模块常用类型有: 计数器(Counter) dict的子类,计算可hash的对象 双向队列(deq

chl183的博客 7万+

从零搭建实时数仓:基于Flink+ClickHouse的实践

实时数据处理和实时数据查询。市场上的技术方案众多,为何选择Flink+ClickHouse?

AIGC应用创新大全的博客 1320

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python中collections中的Counter解析

collections — High-performance container datatypes 在2.4版本中新加入,源代码Lib/collections.py和Lib/_abcoll.py。该模块实现了专用的容器数据类型来替代python的通用内置容器:dict(字典),list(列表), set(集合)和tuple(元组)。 除了具体的容器类,collections模块还提供了abst...

光英的记忆博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

from collections import Counter计数器

1. 对字符串\列表\元祖\字典进行计数,返回一个字典类型的数据,键是元素,值是元素出现的次数 举例: from collections import Counter s = "hello-python-hello-world" a = Counter(s) print(a) # 结果 Counter({'-': 3,...

ch_improve的博客 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

说说 Python 的 collections.Counter 类型

collections.Counter 类型可以用来给可散列的对象计数,或者是当成多重集合来使用 —— 多重集合就是集合里的元素可以出现多次1。 collections.Counter 类型类似于其它编程语言中的 bags 或者 multisets2。 (1)基本用法 counter = collections.Counter(['生物', '印记', '考古学家', '生物', '枣', '印记']) logging.info('counter -> %s', counter) counter.u

读万卷书,行万里路 1045

【Python】详解 collections.Counter

Counter,顾名思义是一个计数器。Counter 类作为一个无序的容器类型,以字典的 key-value 对形式存储元素,旨在统计各元素 (哈希项) 出现的次数。具体而言,key 表示元素,value 表示各元素 key 出现的次数,可为任意整数 (即包括0与负数)。Counter 类有时被称为bags 或 multisets 。我们在 IDLE 通过 help(collections.Counter) 可查看帮助文档。

闻韶 3290

Python collections中的Counter作用以及源码分析

collections Counter 使用 源码分析

格物致知 2万+

Python库collections中的计数器(Counter)

Python库collections中的计数器(Counter)

sikh_0529的博客 1万+

如何使用 Python collections 模块中的 Counter 数据结构

在 Python 中,`collections` 模块提供了多种有用的工具来处理常见的任务,而 `Counter` 是其中一个非常强大且广泛应用的数据结构。`Counter` 是一个专门用于计数(统计)元素出现次数的容器,基于字典(`dict`)实现,能够轻松地进行元素计数、频率统计等操作。本文将深入介绍如何使用 `Counter`,并展示它在实际开发中的应用。

1975

python的collections.Counter方法

哈希表在python中可以用collections.Counter计数来体现。 该方法用于统计某序列中每个元素出现的次数,以键值对的方式存在字典中。但类型其实是Counter。 nums = [1, 2, 3, 1, 2, 1] counts = collections.Counter(nums) print(counts) ## Counter({1: 3, 2: 2, 3: 1}) 凭借这个结构,可以计算出某个序列中出现次数最多的某个元素。也即在得到了counts之后求max即可。但这个max需要给依

m0_47105444的博客 1万+
上一篇: 干货收藏 | 大佬带你一起走进 Python——类的内部
下一篇: 零基础Python入门学习:自动化基础之条件判断语句(干货)
python小丸子
博客等级 码龄6年 30粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值