python之collections.Counter函数介绍

server/2024/10/21 3:41:29/

        collections.Counter 是 Python 标准库中的一个内置类,用于计数可哈希对象(例如列表、字符串等)的出现次数。它提供了一种方便且高效的方式来进行计数操作。下面是对 collections.Counter 的介绍。

1. 创建 Counter 对象

        可以通过传递可迭代对象(如列表、字符串等)给 Counter 类来创建一个计数器对象。

        也可以使用大括号 {} 和键值对的形式来创建一个计数器对象。

示例:

from collections import Counter# 通过可迭代对象创建计数器对象
my_list = [1, 2, 3, 1, 2, 1, 3, 4]
counter1 = Counter(my_list)
print(counter1)# 使用键值对创建计数器对象
counter2 = Counter({'a': 3, 'b': 2, 'c': 1})
print(counter2)

输出:

Counter({1: 3, 2: 2, 3: 2, 4: 1})
Counter({'a': 3, 'b': 2, 'c': 1})

2. 计数器操作

        Counter 对象具有类似字典的操作方式,并提供了一些额外的方法。

                可以使用索引操作符 [key] 获取指定键的计数值。

                可以使用 elements() 方法获取计数器中的所有元素。

                可以使用 most_common([n]) 方法获取计数器中出现次数最多的前 n 个元素。

示例:

from collections import Countermy_list = [1, 2, 3, 1, 2, 1, 3, 4]
counter = Counter(my_list)print(counter[1])  # 获取键 1 的计数值
print(list(counter.elements()))  # 获取计数器中的所有元素
print(counter.most_common(2))  # 获取出现次数最多的前 2 个元素

输出:

3
[1, 1, 1, 2, 2, 3, 3, 4]
[(1, 3), (2, 2)]

 3. 计数器的其他操作方法

        Counter 类还提供了其他一些操作方法,例如 update()、subtract()、clear() 等,用于更新计数器、减少计数器中的元素,以及清空计数器。

示例:

from collections import Countercounter = Counter(a=3, b=2, c=1)
print(counter)counter.update({'a': 2, 'b': 1, 'd': 4})  # 更新计数器
print(counter)counter.subtract({'a': 1, 'b': 2, 'c': 3})  # 减少计数器中的元素
print(counter)counter.clear()  # 清空计数器
print(counter)

输出:

Counter({'a': 3, 'b': 2, 'c': 1})
Counter({'d': 4, 'a': 5, 'b': 3, 'c': 1})
Counter({'a': 4, 'b': 1, 'd': 4, 'c': -2})
Counter()

 4. 总结

        总结来说,collections.Counter 提供了一种方便且高效的计数操作,用于计算可哈希对象的出现次数。它可以通过传递可迭代对象或使用键值对的形式来创建计数器对象,支持类似字典的操作方式,并提供了额外的方法来获取元素的计数值、获取所有元素和获取出现次数最多的元素。此外,计数器对象还支持更新、减少和清空操作。


http://www.ppmy.cn/server/12343.html

相关文章

uniapp 页面滚动到指定位置的方法

方法一:使用uni.pageScrollTo 使页面纵向滚到到指定位置 uni.pageScrollTo({scrollTop: 0,duration: 300 }); 如果滚动无效,可以尝试将代码放在settimeOut(异步),或者nextTick(微任务)。若仍滚…

Swift中与WebView的交互

在Swift中,可以使用WKWebView来实现与WebView的交互。WKWebView是iOS 8及以后版本中新增的Web视图控件,它提供了一种现代化的方式来加载和显示Web内容,并且支持与JavaScript的交互。 以下是一些常见的与WebView的交互方式: 1.加…

使用 Flutter 打造引人入胜的休闲游戏体验

作者 / Zoey Fan 去年,Flutter 休闲游戏工具包进行了一次重大更新。近期在旧金山举办的游戏开发者大会 (GDC) 上,Flutter 首次亮相。GDC 是游戏行业的顶级专业盛会,致力于帮助游戏开发者不断提升开发技能。欢迎您继续阅读,了解开发…

GPT 在目标设定中的应用:实现梦想的技术方法

在技术快速进步的时代,我们设定和实现目标的方式正在不断发展。 该领域最重要的创新之一是引入生成式预训练 Transformer (GPT)。 本文将探讨 GPT 技术如何彻底改变目标设定的艺术,提供实用的见解和案例研究来展示其影响。 GPT 和目标设定简介 ​ 了解 …

代码随想录算法训练营第7天 | 454. 四数相加 II | 383. 赎金信 | 15. 三数之和 | 18. 四数之和

454. 四数相加 II 题意 找出四个数组中元素和为0的次数 解 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int, int> map;i…

JAVA:maven-->>检查 所有依赖 与 环境 兼容

为了确保你项目中的所有依赖都彼此兼容&#xff0c;并与你的环境相适应&#xff0c;你可以利用 Maven 的依赖管理功能。Maven 有助于解决、升级&#xff0c;并对齐所有库的版本&#xff0c;以避免任何不一致或冲突。以下是检查兼容性的步骤&#xff1a; ### 检查兼容性的步骤&…

文件上传的复习(upload-labs1-5关)

什么是文件上传漏洞&#xff1f; 文件上传本身是一个正常的业务需求&#xff0c;对于网站来说&#xff0c;很多时候也确实需要用户将文件上传到服务器&#xff0c;比如&#xff1a;上传图片&#xff0c;资料。 文件上传漏洞不仅涉及上传漏洞这个行为&#xff0c;还涉及文件上…

MemFire解决方案-政企数据库云服务解决方案

方案背景 随着越来越多的政府部门/企事业单位完成数字化转型升级&#xff0c;新技术的应用日益普遍&#xff0c;对系统并发服务能力的需求不断提高。办公OA、档案、门户、监控、财务、ERP、订单等各类系统对数据库的要求越来越苛刻&#xff0c;很多企业/政府部门都面临如下挑战…