Python统计数组中的重复项

简介

在Python中,如果需要统计一个数组中重复项的个数或者频率,可以通过以下步骤来实现。本文将详细介绍每个步骤所需的代码和解释。

实现步骤

步骤 描述
1 创建一个空的字典用于存储数组中每个元素的出现次数
2 遍历数组,对于每个元素,如果字典中已经存在该元素,则将对应的值加1,否则将该元素作为键并将值设为1
3 统计字典中值大于1的键值对的个数或者频率

代码实现

步骤1:创建一个空的字典

counts = {}

在这一步中,我们使用了一个空的字典counts,用于存储数组中每个元素的出现次数。

步骤2:遍历数组并统计元素出现次数

for item in array:
    if item in counts:
        counts[item] += 1
    else:
        counts[item] = 1

在这一步中,我们使用了一个for循环来遍历数组array中的每个元素。对于每个元素,我们首先检查它是否已经在字典counts中存在作为键。如果存在,则将对应的值加1,表示该元素出现了一次;如果不存在,则将该元素作为新的键,并将值设为1,表示该元素第一次出现。

步骤3:统计重复项的个数或频率

duplicates = {item: count for item, count in counts.items() if count > 1}

在这一步中,我们使用了一个字典推导式来创建一个新的字典duplicates,其中只包含出现次数大于1的元素和对应的出现次数。我们遍历字典counts的键值对,只选择值大于1的键值对,并将其添加到字典duplicates中。

完整代码

def count_duplicates(array):
    counts = {}
    for item in array:
        if item in counts:
            counts[item] += 1
        else:
            counts[item] = 1
    duplicates = {item: count for item, count in counts.items() if count > 1}
    return duplicates

上述代码定义了一个名为count_duplicates的函数,该函数接受一个数组作为参数,并返回一个包含重复项的字典duplicates

示例

array = [1, 2, 3, 2, 4, 1, 5, 1, 1]
duplicates = count_duplicates(array)
print(duplicates)

运行上述示例代码,将输出:

{1: 4, 2: 2}

这表示在数组array中,数字1出现了4次,数字2出现了2次,都属于重复项。

结论

通过以上步骤和代码,我们可以很方便地统计数组中的重复项。首先,我们创建一个空的字典用于存储元素的出现次数;然后,遍历数组,在字典中对应元素的值加1或者新增键值对;最后,统计字典中值大于1的键值对的个数或频率。这种方法简单且高效,适用于各种类型的数组。希望这篇文章对刚入行的小白能有所帮助。