Counter 函数是 python 中 collections 模块的一个非常有用的函数,它可以帮助我们快速统计一个列表中元素的个数。在很多场景中,我们需要统计一个列表中元素的个数,Counter 函数可以帮助我们节省大量时间。
Counter 函数的使用非常简单,只需要将一个列表作为参数传入即可,它会返回一个字典,字典的 key 为列表中的元素,value 为该元素的个数。比如,我们有一个列表:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]
如果我们想统计该列表中每个元素的个数,可以使用 Counter 函数:
from collections import Counter
c = Counter(l)
print(c)
输出结果为:Counter({1: 2, 2: 2, 3: 2, 4: 2, 5: 2, 6: 2, 7: 2, 8: 2, 9: 2})
可以看到,Counter 函数返回了一个字典,字典的 key 为列表中的元素,value 为该元素的个数。我们可以通过字典的方式访问每个元素的个数:
print(c[1]) # 输出 2
除了上面的用法,Counter 函数还提供了一些有用的方法,比如 most_common() 方法,该方法可以返回一个列表,列表中的元素为元素出现次数最多的前 n 个元素:
print(c.most_common(3)) # 输出 [(1, 2), (2, 2), (3, 2)]
可以看到,most_common() 方法返回了一个列表,列表中的元素为元素出现次数最多的前 3 个元素,每个元素都是一个元组,元组的第一个元素为元素,第二个元素为该元素出现的次数。
除了 most_common() 方法,Counter 函数还提供了其他很多有用的方法,比如 elements() 方法,该方法可以返回一个迭代器,迭代器中的元素为列表中的所有元素,每个元素出现的次数为该元素出现的次数:
for i in c.elements(): # 输出 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9
可以看到,elements() 方法返回了一个迭代器,迭代器中的元素为列表中的所有元素,每个元素出现的次数为该元素出现的次数。
:Counter 函数是 python 中 collections 模块的一个非常有用的函数,它可以帮助我们快速统计一个列表中元素的个数,使用非常简单,只需要将一个列表作为参数传入即可,它还提供了一些有用的方法,比如 most_common() 方法和 elements() 方法,可以帮助我们快速获取列表中元素出现次数最多的前 n 个元素,以及列表中的所有元素。