当需要统计Python序列中的元素时,可以通过使用内置的collections
模块中的Counter
方法实现。下面是Python统计序列中元素的完整攻略。
导入Counter模块
导入collections
模块中的Counter
方法是实现Python统计序列中元素的第一步。
from collections import Counter
实例化Counter对象
下一步,需要实例化Counter
对象,用于输出序列中元素的数量。
mylist = [1, 1, 2, 3, 4, 4, 4, 5]
mycounter = Counter(mylist)
输出元素计数
现在,通过调用most_common()
和items()
方法,可以输出序列中元素的计数。most_common()
方法按数量从多到少排列元素。items()
方法按照原始序列中元素的顺序显示元素及其数量。
print(mycounter.most_common())
print(mycounter.items())
输出结果如下:
[(4, 3), (1, 2), (2, 1), (3, 1), (5, 1)]
dict_items([(1, 2), (2, 1), (3, 1), (4, 3), (5, 1)])
在这个示例中,序列mylist
包含8个元素,其中元素“4”出现了3次。输出结果中的计数是按照数量从多到少排列的。
示例1
下面是一个字符串列表的示例:
mylist = ['foo', 'bar', 'foo', 'baz', 'bar', 'foo', 'baz', 'qux', 'qux']
mycounter = Counter(mylist)
print(mycounter.most_common())
输出结果如下:
[('foo', 3), ('bar', 2), ('baz', 2), ('qux', 2)]
示例2
下面是一个字典列表的示例:
mylist = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Alice', 'age': 25}]
mycounter = Counter(mylist)
print(mycounter.most_common())
输出结果如下:
[({'name': 'Alice', 'age': 25}, 2), ({'name': 'Bob', 'age': 30}, 1)]
上面的示例中,字典元素是作为一个整体出现的,计数值是出现次数。most_common()
方法返回的元素是tuple类型,包含字典元素和它的数量。
这个Python统计序列中元素的攻略是非常基础的,但对于处理序列的初始统计需求来说具有很实用的作用。