Python 程序计算列表中元素的出现次数

在本文中,我们将展示如何编写一个 Python 程序来计算并返回用户给定元素在列表中的出现次数,并附带示例。在处理数据时,计算元素的出现次数是识别频繁项的最常见场景。否则,您可以过滤唯一项等。

在 Python 编程语言中,有多种方法可以计算并返回列表中用户给定元素的出现次数。这包括内置函数和循环。 

使用 count() 函数

count() 函数将计算并返回列表中给定值的出现次数。在下面的程序中,我们声明了一个包含一些重复数字的整数列表。接下来,我们使用 count() 方法来返回数字 1、  2、  4 和 5 在给定列表中重复或出现的次数。

a = [1, 2, 1, 4, 5, 1, 2, 1, 4, 2, 1, 2, 4, 5]
print(a)

print(a.count(1))
print(a.count(2))
print(a.count(4))
print(a.count(5))
[1, 2, 1, 4, 5, 1, 2, 1, 4, 2, 1, 2, 4, 5]
5
4
3
2

使用 Counter 计算列表中元素的出现次数的 Python 程序

collections 模块拥有 Counter 类,它可以计算给定列表中所有元素的出现次数,并将结果以字典对象返回。在这里,字典键将是列表项,值是元素在列表中重复的总次数。

在下面的程序中,我们首先从 collections 库中导入 Counter() 函数。接下来,我们将其应用于整数列表以计算列表中元素的出现次数。

from collections import Counter

a = [1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
print(a)

count = Counter(a)
print(count)

print(count[1])
print(count[2])
print(count[4])
print(count[5])
[1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
Counter({1: 6, 2: 5, 4: 4, 5: 2})
6
5
4
2

使用 countOf()

operator 模块拥有 countOf() 函数,它等同于我们之前讨论过的传统 count() 方法。它接受第一个参数后的序列(列表)以及作为第二个参数的要查找的元素。接下来,它计算给定元素在列表中重复的总次数并返回输出。

import operator

a = [1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
print(a)

num = int(input("Enter value = "))
count = operator.countOf(a, num)

print(num, "has repeated", count, "times")
[1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
Enter value = 1
1 has repeated 6 times

使用 for 循环计算列表中元素的出现次数的 Python 程序

这种方法是原生且流行的,因为它为用户提供了更多的控制。下面的 程序 中的 for 循环 将迭代给定 列表 中的每个项。接下来,If 语句将每个列表元素与给定值进行比较。如果找到匹配项,则 count 变量将增加 1。

a = [1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
print(a)

num = int(input("Enter value = "))
count = 0

for val in a:
if val == num:
count += 1

print(num, "has repeated", count, "times")
Python Program to Count Occurrence of an in a List

使用列表推导式

与上面的程序类似,您可以使用 列表推导式 来计算并返回用户给定元素在列表中的出现次数。

a = [1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
print(a)

num = int(input("Enter value = "))

count = [i for i in a if i == num]
print(num, "has repeated", len(count), "times")
[1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
Enter value = 4
4 has repeated 4 times

使用 enumerator 计算列表中元素的出现次数的 Python 程序

当您使用 enumerator 函数时,您可以访问列表的每个值及其索引。

a = [1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
print(a)

num = int(input("Enter value = "))

count = [val for i, val in enumerate(a) if val == num]

print(num, "has repeated", len(count), "times")
[1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
Enter value = 5
5 has repeated 2 times

使用字典推导式

此示例使用字典推导式来查找并返回项在给定列表中重复的总次数。

a = [1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
print(a)

num = int(input("Enter value = "))

count = {val: a.count(val) for val in a}

print(num, "has repeated", count.get(num), "times")
[1, 2, 1, 4, 1, 5, 2, 1, 2, 1, 4, 2, 1, 2, 4, 5, 4]
Enter value = 1
1 has repeated 6 times