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

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

  1. 基本方法
  2. 使用列表理解
  3. 使用Set()
  4. 使用enumerate()
  5. 使用OrderedDict

让我们详细讨论每一种方法。

基本方法

在第一种方法中,我们将讨论使用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. 在下一步中,我们声明一个空列表,它将包含所有唯一的值,然后使用for循环,跟随着决策,检查特定元素是否存在于列表中,如果不存在,我们将其添加到列表中。
  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()来获得一个不同元素的列表。

使用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. 在下一步中,我们在list()中使用set(),并将list_value1作为参数传递,以便我们可以获得一个不同元素的列表。
  4. 最后,我们显示了结果列表。

使用enumerate()

现在让我们看看如何使用enumerate()来实现我们的目标。

以下程序说明了相同的方法-

#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. 在下一步中,我们在列表理解中使用enumerate(),它将返回一个包含唯一元素的列表。
  4. 最后,我们显示了结果列表。

最后,在最后一个程序中,我们将看到如何使用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. 第一步是从collections中导入OrderedDict,以便我们可以使用它来从列表中删除重复项。
  2. 在下一步中,我们初始化了包含重复值的列表。
  3. 然后,我们打印这个列表,以便我们可以比较输出中的列表。
  4. 现在我们将list_values1传递给OrderedDict.fromkeys()。
  5. 最后,我们显示了不包含任何重复元素的结果列表。

结论

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

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程