python如何统计序列中元素

  • Post category:Python

当需要统计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统计序列中元素的攻略是非常基础的,但对于处理序列的初始统计需求来说具有很实用的作用。