您的位置:

如何在 Python 中删除列表中的重复项

当一个元素在列表中出现不止一次时,我们称之为重复。

在本教程中,我们将学习在 Python 中从列表中移除这些重复项的不同方法。

  1. 基本方法
  2. 使用列表推导
  3. 使用设置()
  4. 使用枚举()
  5. 使用订购商品

让我们详细讨论每一个问题。

基本方法

在第一种方法中,我们将讨论使用 Python 从列表中移除重复项的基本方法。


#initializing the list
list_value1=[12,15,11,12,8,15,3,3]
print("The initialized list is ",list_value1)
res_list=[]
for i in list_value1:
    if i not in res_list:
        res_list.append(i)
#printing the list after removing duplicate elements
print("The resultant list after removing duplicates is ",res_list)

输出:

The initialized list is  [12, 15, 11, 12, 8, 15, 3, 3]
The resultant list after removing duplicates is  [12, 15, 11, 8, 3]

解释

所以,现在是时候看一看上面程序的解释了。

  1. 第一步是初始化包含重复值的列表。
  2. 之后,我们打印了这个列表,这样我们就可以很容易地比较输出中的列表。
  3. 在下一步中,我们已经声明了一个空列表,它将保存所有唯一的值,然后用于循环,随后进行决策,以检查列表中是否存在特定的元素,如果不存在,我们将把它追加到列表中。
  4. 最后,我们显示了结果列表。

在第二个项目中,我们将利用列表推导来实现我们的目标。

使用列表推导

下面的程序说明了同样的情况-


#initializing the list
list_value1=[12,15,11,12,8,15,3,3]
print("The initialized list is ",list_value1)
res_list=[]
#using list comprehension
[res_list.append(i) for i in list_value1 if i not in res_list]
#printing the list after removing duplicate elements
print("The resultant list after removing duplicates is ",res_list)

输出:

The initialized list is  [12, 15, 11, 12, 8, 15, 3, 3]
The resultant list after removing duplicates is  [12, 15, 11, 8, 3]

解释

让我们了解一下我们在上面的程序中做了什么-

  1. 第一步是初始化包含重复值的列表。
  2. 之后,我们打印了这个列表,这样我们就可以很容易地比较输出中的列表。
  3. 在下一步中,我们使用列表推导来构建相同的逻辑。
  4. 最后,我们显示了结果列表。

在第三种方法中,我们将看到如何使用 set() 获得不同元素的列表。

使用集合()

下面给出的程序展示了如何做到这一点-


#initializing the list
list_value1 = [12,15,11,12,8,15,3,3]
print("The initialized list is ",list_value1)
res_list = []
#using set()
list_value1 = list(set(list_value1))
#printing the list after removing duplicate elements
print("The resultant list after removing duplicates is ",list_value1)

输出:

The initialized list is  [12, 15, 11, 12, 8, 15, 3, 3]
The resultant list after removing duplicates is  [12, 15, 11, 8, 3]

解释

让我们试着了解这里发生了什么,

  1. 第一步是初始化包含重复值的列表。
  2. 之后,我们打印了这个列表,这样我们就可以很容易地比较输出中的列表。
  3. 在下一步中,我们使用了列表()中的 set() ,并将 list_value1 作为参数传递,这样我们就可以获得不同元素的列表。
  4. 最后,我们显示了结果列表。

使用枚举()

现在让我们看看如何使用枚举()来满足我们的目标。

下面的程序说明了同样的情况-


#initializing the list
list_value1 = [12,15,11,12,8,15,3,3]
print("The initialized list is ",list_value1)
res_list = [x for n,x in enumerate(list_value1) if x not in list_value1[:n]]
#printing the list after removing duplicate elements
print("The resultant list after removing duplicates is ",res_list)

输出:

The initialized list is  [12, 15, 11, 12, 8, 15, 3, 3]
The resultant list after removing duplicates is  [12, 15, 11, 8, 3]

解释

  1. 第一步是初始化包含重复值的列表。
  2. 之后,我们打印了这个列表,这样我们就可以很容易地比较输出中的列表。
  3. 在下一步中,我们使用了枚举()内部列表推导,它将返回一个包含唯一元素的列表。
  4. 最后,我们显示了结果列表。

最后,在最后一个程序中,我们将看到如何使用 Python 使用 OrderedDict 从列表中删除重复项。

使用 OrderedDict

下面给出的程序展示了如何做到这一点-


from collections import OrderedDict
#initializing the list
list_value1 = [12,15,11,12,8,15,3,3]
print("The initialized list is ",list_value1)
#using OrderedDict
res_list = list(OrderedDict.fromkeys(list_value1))
#printing the list after removing duplicate elements
print("The resultant list after removing duplicates is ",res_list)

输出:

The initialized list is  [12, 15, 11, 12, 8, 15, 3, 3]
The resultant list after removing duplicates is  [12, 15, 11, 8, 3]

解释

  1. 第一步是从集合中导入 OrderedDict,以便我们可以使用它从列表中删除重复项。
  2. 在下一步中,我们已经初始化了包含重复值的列表。
  3. 之后,我们打印了这个列表,这样我们就可以很容易地比较输出中的列表。
  4. 现在我们已经在 OrderedDict.fromkeys()中传递了 list _ values1。
  5. 最后,我们显示了不包含任何重复元素的结果列表。

结论

在本教程中,我们探索并学习了一些有趣的方法来从 Python 列表中移除重复项。