📅  最后修改于: 2023-12-03 15:04:25.998000             🧑  作者: Mango
在 Python 中,如果想要对一个列表中的元素进行计数,可以使用内置的 collections
模块中的 Counter()
函数。这个函数可以让你对一个可迭代对象中的元素计数,并返回一个字典,其中元素作为键,值作为元素统计次数。这个字典也可以按照元素计数从大到小的顺序进行排序输出。
class collections.Counter([iterable-or-mapping])
最基本的 collections.Counter()
用法是将一个可迭代对象作为参数传入函数中,这个函数会对这个可迭代对象进行元素计数。
from collections import Counter
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
count = Counter(lst)
print(count)
运行这段代码会输出以下结果:
Counter({5: 3, 3: 2, 1: 2, 2: 1, 4: 1, 9: 1, 6: 1})
这个结果表示,列表中出现次数最多的元素是 5
,出现了 3
次,其次是 3
,出现了 2
次,以此类推。
collections.Counter()
也可以对字典元素进行计数,这时候可以将这个字典作为参数传入函数中。这个函数会对字典中的值进行计数,并返回一个字典,其中键为原字典中的键,值为原字典中对应键的值的计数。
from collections import Counter
dct = {'apple': 2, 'banana': 3, 'orange': 1}
count = Counter(dct)
print(count)
运行这段代码会输出以下结果:
Counter({'banana': 3, 'apple': 2, 'orange': 1})
这个结果表示,字典中出现次数最多的元素是 banana
,出现了 3
次,其次是 apple
,出现了 2
次,以此类推。
collections.Counter()
返回的字典可以通过 most_common()
函数按照元素出现次数从大到小的顺序进行排序。
from collections import Counter
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
count = Counter(lst)
for item, times in count.most_common():
print(f"{item}: {times}")
运行这段代码会输出以下结果:
5: 3
3: 2
1: 2
2: 1
4: 1
9: 1
6: 1
这个结果表示,列表中出现次数最多的元素是 5
,出现了 3
次,其次是 3
,出现了 2
次,以此类推。
collections.Counter()
函数提供了一个非常方便的方法来对元素进行计数,并输出元素计数结果。同时,通过调用 most_common()
函数,也可以让结果按照元素出现次数从大到小的顺序进行排序输出。这个函数常常用在数据分析、文本处理等领域中,是 Python 中非常有用的一个内置函数。