当我们需要统计列表、元组、字典等容器中某个元素出现的次数时,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函数的进一步掌握实现更加高效、精准的数据统计。