📜  python 计算列表中的重复元素 - Python (1)

📅  最后修改于: 2023-12-03 15:04:18.634000             🧑  作者: Mango

Python 计算列表中的重复元素

在Python中,通常我们需要找出一个列表中出现重复的元素以进行进一步处理。以下是一些计算列表中重复元素的方法。

方法一:使用set和列表推导式

我们可以使用Python中内置的set数据类型来计算列表中的重复元素。具体步骤如下:

  1. 将列表转化为set类型,去除重复元素。
  2. 使用列表推导式和count()函数计算每个元素在原始列表中的出现次数。

下面是代码示例:

my_list = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
duplicates = list(set([x for x in my_list if my_list.count(x) > 1]))
print(duplicates)

返回结果为:

[1, 2, 5]
方法二:使用collections库中的Counter函数

另一种计算列表中重复元素的方法是使用Python标准库中的Counter函数。Counter函数用于统计可哈希对象中每个元素出现的次数。具体步骤如下:

  1. 导入Python标准库collections中的Counter函数。
  2. 使用Counter函数统计列表中每个元素出现的次数。
  3. 使用字典推导式将重复元素筛选出来。

下面是代码示例:

from collections import Counter
my_list = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
duplicates = [k for k, v in Counter(my_list).items() if v > 1]
print(duplicates)

返回结果为:

[1, 2, 5]
方法三:使用numpy库中的unique函数

numpy是Python中的一个数值计算库,其中包含了许多用于处理列表和数组的函数,例如unique函数可以用于计算一个数组中的非重复元素。具体步骤如下:

  1. 导入numpy库。
  2. 使用unique函数计算列表中的非重复元素。
  3. 将列表和非重复元素数组相减。

下面是代码示例:

import numpy as np
my_list = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
unique_elems = np.unique(my_list)
duplicates = list(set(my_list) - set(unique_elems))
print(duplicates)

返回结果为:

[1, 2, 5]

以上就是Python中如何计算列表中的重复元素的几种方法。根据自己的需求选择合适的方法即可。