python中counter怎么⽤_带你⾛进python计数器类Counter的
⽤法
什么是Counter?
Counter 是⼀个在collections包⾥的类,正如其名,是⼀个⽤于计数的⼯具。
我们可以⽤Counter(nums)这样的构造函数构造⼀个Counter类,其中nums是⼀个列表。
构造好的Counter实例可以看作⼀个字典,键是nums的每⼀项,值是它的出现次数。
如果上⾯的叙述让你感到很混乱的话,我不妨举个例⼦:
如果⼀个列表a = [1,1,3,4,3],你想要统计每项的出现次数,那么你使⽤b = Counter(a),那么这时候b就像⼀个这样的字典
{1:2,3:2,4:1},表⽰数字1出现了2次,数字3出现了2次,数字4出现了1次。
Counter函数的功能主要是计数器,特别是在对源数据是字典类型的数据进⾏计数时,如果不想写冗长繁琐的for循环,那么使⽤Counter 函数将是⼀个不错的选择。python怎么读的
这⾥以⼀个简单的计数场景来演⽰,假设我们有⼀组以颜⾊名称和颜⾊数量为键值对的字典对象,我们需要对同⼀种颜⾊进⾏累计计数(字典中可能有多组同⼀颜⾊的键值对),看起来似乎只能使⽤笨笨的循环来进⾏操作了。colors = [{'red':4},{'blue':5},{'red':8},{'green':7}, {'blue':8},{'blue':10},{'green':12}]
使⽤⽐较传统的循环⽅法:result = {}
for i in colors:
if list(i.keys())[0] not in result:
result[list(i.keys())[0]] = list(i.values())[0]
else:
result[list(i.keys())[0]] += list(i.values())[0]
{'red': 12, 'blue': 23, 'green': 19}
如果这⾥使⽤collections标准库中的Counter函数,则整个过程会⽆⽐简单:
Counter函数:from collections import Counter
c = Counter()
for i in colors:
c[list(i.keys())[0]] += list(i.values())[0]
Counter({'blue': 23, 'green': 19, 'red': 12})
这⾥Counter容器实现了⼀个⾃动化的计数器,当Counter中不存在某个键时,赋值操作会⾃动创建⼀个新的键,⽽不是像⽅法⼀中那样需要⼿动去判断某个键是否已经存在在字典⾥⾯。
除此之外,Counter神奇的地⽅在于它有很多可以简单调⽤的统计⽅法,⽐如我们想要获取结果中正序/倒序的TOPN记录,则可以直接这样写:c.most_common(2)[('blue', 23), ('green', 19)]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论