当前位置: 首页 > 编程笔记 >

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

楚意
2023-03-14
本文向大家介绍简单掌握Python的Collections模块中counter结构的用法,包括了简单掌握Python的Collections模块中counter结构的用法的使用技巧和注意事项,需要的朋友参考一下

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的collections模块中namedtuple结构使用示例,包括了Python的collections模块中namedtuple结构使用示例的使用技巧和注意事项,需要的朋友参考一下 namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按

  • 本文向大家介绍简介Python的collections模块中defaultdict类型的用法,包括了简介Python的collections模块中defaultdict类型的用法的使用技巧和注意事项,需要的朋友参考一下 defaultdict 主要用来需要对 value 做初始化的情形。对于字典来说,key 必须是 hashable,immutable,unique 的数据,而 value 可以是

  • 本文向大家介绍详解Python的collections模块中的deque双端队列结构,包括了详解Python的collections模块中的deque双端队列结构的使用技巧和注意事项,需要的朋友参考一下 deque 是 double-ended queue的缩写,类似于 list,不过提供了在两端插入和删除的操作。 appendleft 在列表左侧插入 popleft 弹出列表左侧的值 exten

  • 本文向大家介绍简单介绍Python中的struct模块,包括了简单介绍Python中的struct模块的使用技巧和注意事项,需要的朋友参考一下 准确地讲,Python没有专门处理字节的数据类型。但由于str既是字符串,又可以表示字节,所以,字节数组=str。而在C语言中,我们可以很方便地用struct、union来处理字节,以及字节和int,float的转换。 在Python中,比方说要把一个32

  • 本文向大家介绍轻松掌握Java单例模式,包括了轻松掌握Java单例模式的使用技巧和注意事项,需要的朋友参考一下 单例模式是23中设计模式中最简单的设计模式,在企业开发中也应用的特别多。单例模式的优点是:项目中有且仅有一个实例。 特点:构造器私有化,对象私有化,只提供一个对外访问的接口。 应用场景:     1、系统需要共享资源:比如日志系统,spring的资源管理器等     2、为了控制资源的使

  • 本文向大家介绍快速掌握Node.js模块封装及使用,包括了快速掌握Node.js模块封装及使用的使用技巧和注意事项,需要的朋友参考一下 Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一、Node.js模块封装  1.创建一个名为censorify的文件夹  2.在censorify下创建3个文件censortext.js、p