python counter函数使用方法详解

  • Post category:Python

当我们需要统计列表、元组、字典等容器中某个元素出现的次数时,Python中的counter函数就能够派上用场了。

一、Counter函数的基本用法

Counter函数位于collections模块中,在使用之前需要先引入该模块:

from collections import Counter

使用Counter函数统计容器内元素出现的次数,主要有两种方式:

1. 统计可迭代对象中元素出现的次数

例如,统计列表中元素出现的次数:

lst = [1, 2, 3, 4, 1, 2, 4, 4, 5, 3]
count_lst = Counter(lst)
print(count_lst)

输出结果为:

Counter({4: 3, 1: 2, 2: 2, 3: 2, 5: 1})

说明1出现了2次,2出现了2次,3出现了2次,4出现了3次,5出现了1次。

2. 统计字典中value出现的次数

例如,统计字典中value出现的次数:

dict = {'apple': 3, 'banana': 2, 'orange': 4, 'grape': 4, 'watermelon': 1}
count_dict = Counter(dict.values())
print(count_dict)

输出结果为:

Counter({4: 2, 3: 1, 2: 1, 1: 1})

说明value为4出现了2次,value为3、2、1各出现了1次。

二、Counter函数的进阶用法

1. most_common()方法

most_common()方法用于返回出现次数最多的元素及其次数,参数n表示返回前n个元素,不填写n则返回所有元素。

例如,统计列表中出现最多的前三个数字:

lst = [1, 2, 3, 4, 1, 2, 4, 4, 5, 3]
count_lst = Counter(lst)
print(count_lst.most_common(3))

输出结果为:

[(4, 3), (1, 2), (2, 2)]

说明出现次数最多的前三个数字分别是4、1、2,它们分别出现了3、2、2次。

2. 更新计数器对象

除了使用Counter()函数创建计数器对象外,我们还可以通过update()方法更新已有的计数器对象。

例如,先创建一个计数器对象:

cnt = Counter([1, 2, 2, 3, 3, 3, 3])

接着,使用update()方法将另一个Counter对象合并到当前对象中:

cnt_update = Counter([1, 2, 3, 4, 5])
cnt.update(cnt_update)
print(cnt)

输出结果为:

Counter({3: 4, 2: 2, 1: 2, 4: 1, 5: 1})

说明原来的计数器对象统计到元素1、2、3各出现了2、2、4次,合并后统计到1、2、3、4、5各出现了2、2、4、1、1次。

三、总结

本文主要介绍了Python中的Counter函数的基本用法及进阶用法,包括统计容器内元素出现的次数、most_common()方法以及更新计数器对象等。Counter函数是Python中非常实用的一个工具,同时还可以通过对Counter函数的进一步掌握实现更加高效、精准的数据统计。