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',('5',5),('4',('7',('0',3),('9',('8',2),('3',1)]
此外,你还可以对两个 Counter 对象进行 +,-,min, max 等操作。
综合示例:
print('Counter类型的应用') c = Counter("dengjingdong") #c = Counter({'n': 3,'g': 3,'d': 2,'i': 1,'o': 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) """
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。