简单掌握Python的Collections模块中counter结构的用法
admin
2023-08-01 22:10:36
0

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) 
\"\"\" 

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...