python collections模块 计数器(counter)
Posted minger_lcm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python collections模块 计数器(counter)相关的知识,希望对你有一定的参考价值。
一、计数器(counter)
Counter是对字典类型的补充,用于追踪值的出现次数。
ps:具备字典的所有功能 + 自己的功能
把我写入的元素出现的多少次都计算出来
import collections # 创建一个Counter对象 obj = collections.Counter(‘ddccbbqqaaa‘) print(obj) ‘‘‘ 把我写入的元素出现的多少次都计算出来 Counter({‘a‘: 3, ‘d‘: 2, ‘c‘: 2, ‘b‘: 2, ‘q‘: 2}) ‘‘‘
obj.most_common()
要取多少得值
import collections # 创建一个Counter对象 obj = collections.Counter(‘ddccbbqqaaa‘) print(obj) ‘‘‘ 把我写入的元素出现的多少次都计算出来 Counter({‘a‘: 3, ‘d‘: 2, ‘c‘: 2, ‘b‘: 2, ‘q‘: 2}) ‘‘‘ ret = obj.most_common(4) print(ret) # 取前4位 # [(‘a‘, 3), (‘d‘, 2), (‘c‘, 2), (‘b‘, 2)]
循环字典
import collections # 创建一个Counter对象 obj = collections.Counter(‘ddccbbqqaaa‘) print(obj) # Counter({‘a‘: 3, ‘d‘: 2, ‘c‘: 2, ‘b‘: 2, ‘q‘: 2}) # 循环 字典 for i in obj: print(i,obj[i]) ‘‘‘ d 2 c 2 b 2 q 2 a 3 ‘‘‘
elements() 传的是原生的值
import collections # 创建一个Counter对象 obj = collections.Counter("dd") # elements() 传的是原生的值 print(list(obj.elements())) # [‘d‘, ‘d‘] obj = collections.Counter([‘1‘,‘2‘,‘3‘,‘4‘]) print(list(obj.elements())) # [‘1‘, ‘2‘, ‘3‘, ‘4‘]
update() 更新计数器 增加
在原来基础上添加
import collections # 创建一个Counter对象 obj = collections.Counter([‘11‘,‘22‘,‘22‘,‘44‘]) print(obj) # Counter({‘22‘: 2, ‘11‘: 1, ‘44‘: 1}) # update() 更新计数器 obj.update(["11","11","eric"]) print(obj) # Counter({‘11‘: 3, ‘22‘: 2, ‘44‘: 1, ‘eric‘: 1})
subtract()
删除
原来的计数器中的每一个元素的数量减去后添加的元素的数量
import collections # 创建一个Counter对象 obj = collections.Counter([‘11‘,‘22‘,‘22‘,‘44‘]) print(obj) # Counter({‘22‘: 2, ‘11‘: 1, ‘44‘: 1}) # update() 更新计数器 obj.update(["11","11","eric"]) print(obj) # Counter({‘11‘: 3, ‘22‘: 2, ‘44‘: 1, ‘eric‘: 1}) obj.subtract([‘eric‘]) print(obj) # Counter({‘11‘: 3, ‘22‘: 2, ‘44‘: 1, ‘eric‘: 0})
import collections # 创建一个Counter对象 obj = collections.Counter([‘11‘,‘22‘,‘22‘,‘44‘]) print(obj) # Counter({‘22‘: 2, ‘11‘: 1, ‘44‘: 1}) obj.subtract([‘eric‘,‘22‘,‘22‘,‘22‘]) print(obj) # Counter({‘11‘: 1, ‘44‘: 1, ‘22‘: -1, ‘eric‘: -1})
以上是关于python collections模块 计数器(counter)的主要内容,如果未能解决你的问题,请参考以下文章