加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

简单掌握Python的Collections模块中counter结构的用法

发布时间:2020-12-16 20:31:13 所属栏目:Python 来源:网络整理
导读: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}) 初始化可以传入三种类型的参数

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('nn') 
""" 
#删除所有d元素 
del c['d'] 
b = Counter("dengxiaoxiao") 
#通过subtract函数删除元素,元素个数可以变成负数。 
c.subtract(b) 
""" 
 
""" 
可以添加数据 
b = Counter("qinghuabeida") 
c.update(b) 
""" 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读