欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > python中的Counter函数

python中的Counter函数

2025/2/25 21:50:07 来源:https://blog.csdn.net/xiaofeixia002X/article/details/144445863  浏览:    关键词:python中的Counter函数

在 Python 中,Countercollections 模块中的一个类,用于统计可迭代对象中元素的出现次数,并以字典的形式返回,键为元素,值为对应的计数。它非常适合处理频率统计问题。

用之前必须先导入

from collections import Counter

统计元素的频率

ss = "hello world"
ss_counter = Counter(ss)
print(ss_counter)
Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
nums = [1, 2, 2, 3, 3, 3, 4]
nums_counter = Counter(nums)
print(nums_counter)
Counter({3: 3, 2: 2, 1: 1, 4: 1})

访问

nums = [1, 2, 2, 3, 3, 3, 4,10,10,10]
nums_counter = Counter(nums)
nums_counter[1]#1
nums_counter[2]#2
nums_counter[3]#3
nums_counter[4]#1
nums_counter[10]#3nums_counter[40]#0
nums_counter[100]#0

中括号[ ]中是键key,没有则返回0。

ss = "hello world"
ss_counter = Counter(ss)
ss_counter['h']#1
ss_counter['l']#3
ss_counter['w']#1
ss_counter['asss']#0

counter.elements():列出元素

elements() 方法返回一个迭代器,包含所有的元素(按频次重复)。可以用 list() 转换成列表:

ss = "hello world"
ss_counter = Counter(ss)
ss_counter.elements() # <itertools.chain at 0x1acefc9b3a0>
list(ss_counter.elements()) # ['h', 'e', 'l', 'l', 'l', 'o', 'o', ' ', 'w', 'r', 'd']

counter.most_common:找出最常见的元素

返回出现次数最多的前 n 个元素,按频率降序排列。如果不传参数,则返回所有元素的频率排名。

ss = "abababaabbbbbcccd"
ss_counter = Counter(ss)
ss_counter.most_common(1)#[('b', 8)]
ss_countaer.most_common(2)#[('b', 8), ('a', 5)]
ss_counter.most_common(3)#[('b', 8), ('a', 5), ('c', 3)]
ss_counter.most_common()#[('b', 8), ('a', 5), ('c', 3), ('d', 1)]

更新或减少.update()和.subtract()

ss = "aabbbc"
ss_counter = Counter(ss)
ss_counter # Counter({'a': 2, 'b': 3, 'c': 1})
ss_counter.update('zzxxyy')
ss_counter#Counter({'a': 2, 'b': 3, 'c': 1, 'z': 2, 'x': 2, 'y': 2})
ss_counter.subtract('zxy')
ss_counter#Counter({'a': 2, 'b': 3, 'c': 1, 'z': 1, 'x': 1, 'y': 1})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词