简单掌握Python的Collections模块中counter结构的用法
作者:CIZIXS 时间:2023-05-17 00:20:13
counter 是一种特殊的字典,主要方便用来计数,key 是要计数的 item,value 保存的是个数。
from collections import Counter
>>> c = Counter('hello,world')
Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, ',': 1, 'r': 1, 'w': 1})
初始化可以传入三种类型的参数:字典,其他 iterable 的数据类型,还有命名的参数对。
| __init__(self, iterable=None, **kwds)
| Create a new, empty Counter object. And if given, count elements
| from an input iterable. Or, initialize the count from another mapping
| of elements to their counts.
|
| >>> c = Counter() # a new, empty counter
| >>> c = Counter('gallahad') # a new counter from an iterable
| >>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping
| >>> c = Counter(a=4, b=2) # a new counter from keyword args
默认请求下,访问不存在的 item,会返回 0。Counter 可以用来统计某些数据的出现次数,比如一个很长的数字串 numbers = "67642192097348921647512014651027586741512651" 中每个数字的频率:
>>> c = Counter(numbers) # c 存储了每个数字的频率
>>> c.most_common() # 所有数字按照频率排序。如果 most_common 接受了 int 参数 n,将返回频率前n 的数据,否则会返回所有的数据
[('1', 8),
('2', 6),
('6', 6),
('5', 5),
('4', 5),
('7', 5),
('0', 3),
('9', 3),
('8', 2),
('3', 1)]
此外,你还可以对两个 Counter 对象进行 +, -,min, max 等操作。
综合示例:
print('Counter类型的应用')
c = Counter("dengjingdong")
#c = Counter({'n': 3, 'g': 3, 'd': 2, 'i': 1, 'o': 1, 'e': 1, 'j': 1})
print("原始数据:",c)
print("最多的两个元素:",c.most_common(2))#输出数量最多的元素
print("d的个数:",c['d'])#输出d的个数
print(c.values())#输出字典的value列表
print(sum(c.values()))#输出总字符数
print(sorted(c.elements()))#将字典中的数据,按字典序排序
print('\n\n')
"""
#删除所有d元素
del c['d']
b = Counter("dengxiaoxiao")
#通过subtract函数删除元素,元素个数可以变成负数。
c.subtract(b)
"""
"""
可以添加数据
b = Counter("qinghuabeida")
c.update(b)
"""
标签:Python,counter
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Pytorch 中net.train 和 net.eval的使用说明
2021-11-15 11:40:37
MYSQL字符串强转的方法示例
2024-01-13 10:38:58
使用VSCODE配置GO语言开发环境的完整步骤
2024-04-27 15:27:51
一文带你搞懂Python中的pyc文件
2022-01-25 20:01:03
![](https://img.aspxhome.com/file/2023/0/77630_0s.png)
数据库Oracle数据的异地的自动备份
2010-07-27 13:28:00
python实现最大优先队列
2022-12-24 00:48:13
PHP文件操作详解
2023-11-20 07:44:25
jQuery实现AJAX定时刷新局部页面实例
2024-05-02 17:05:27
数据挖掘之Apriori算法详解和Python实现代码分享
2022-02-07 00:29:59
![](https://img.aspxhome.com/file/2023/3/87713_0s.jpg)
详解MySQL监控工具 mysql-monitor
2024-01-25 23:03:16
![](https://img.aspxhome.com/file/2023/3/116783_0s.jpg)
python将Dataframe格式的数据写入opengauss数据库并查询
2024-01-12 19:35:28
![](https://img.aspxhome.com/file/2023/7/102727_0s.png)
如何用python实现结构体数组
2023-10-13 19:07:34
在Python的Django框架的视图中使用Session的方法
2023-06-22 07:10:15
MySQL索引总结(Index Type)
2024-01-23 19:28:27
MySQL定位并优化慢查询sql的详细实例
2024-01-25 20:32:16
![](https://img.aspxhome.com/file/2023/6/112666_0s.png)
利用Python求阴影部分的面积实例代码
2021-10-05 15:18:03
![](https://img.aspxhome.com/file/2023/3/89103_0s.png)
PyCharm配置mongo插件的方法
2023-08-16 19:37:05
![](https://img.aspxhome.com/file/2023/6/85026_0s.jpg)
使用SQL Server 2008中对象相关性
2008-12-12 06:36:00
Python必备技能之debug调试教程详解
2023-03-01 19:26:10
![](https://img.aspxhome.com/file/2023/0/68380_0s.png)
python和flask中返回JSON数据的方法
2023-07-31 02:43:17
![](https://img.aspxhome.com/file/2023/7/94127_0s.jpg)