列表是一个包含不同Python对象的容器,该对象可以是整数,单词,值等它等效于其他编程语言中的数组,我来为大家讲解一下关于python如何用列表删除重复元素?跟着小编一起来看一看吧!

python如何用列表删除重复元素(DAY6-step4Python从列表List)

python如何用列表删除重复元素

列表是一个包含不同Python对象的容器,该对象可以是整数,单词,值等。它等效于其他编程语言中的数组。

因此,这里将通过不同的方式来从给定列表中删除重复项。

使用Set从列表中删除重复项

要从列表中删除重复项,可以使用内置函数set()。 set()方法的特长在于它返回不同的元素。

我们有一个列表:[1,1,2,3,2,2,4,5,6,2,1]。 列表中有许多重复项,我们需要删除它们并仅取回不同的元素。 该列表将提供给set()内置函数。 稍后,使用list()内置函数显示最终列表,如下例所示。

我们得到的输出是不同的元素,其中所有重复元素都被消除了。

my_list = [1,1,2,3,2,2,4,5,6,2,1] my_final_list = set(my_list) print(list(my_final_list))

Output:

[1, 2, 3, 4, 5, 6]

使用临时列表从列表中删除重复项

要从给定列表中删除重复项,可以使用一个空的临时列表。 为此,您将必须遍历具有重复项的列表,并将唯一项添加到临时列表中。 之后,将临时列表分配给主列表。

这是一个使用临时列表的工作示例。

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2] print("List Before ", my_list) temp_list = [] for i in my_list: if i not in temp_list: temp_list.append(i) my_list = temp_list print("List After removing duplicates ", my_list)

Output:

List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]

使用Dict从列表中删除重复项

通过从集合中导入OrderedDict,我们可以从给定列表中删除重复项。 从python2.7开始可用。 OrderedDict负责按键显示的顺序返回不同的元素。

让我们利用列表,并使用OrderedDict中可用的fromkeys()方法从列表中获取唯一元素。

要使用OrderedDict.fromkey()方法,必须从集合中导入OrderedDict,如下所示:

from collections import OrderedDict

这是一个使用OrderedDict.fromkeys()方法删除重复项的示例。

from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))

Output:

['a', 'x', 'y', 'b', 'c']

从Python 3.5及更高版本开始,我们可以使用常规的dict.fromkeys()从列表中获取不同的元素。 dict.fromkeys()方法返回唯一的键,并有助于摆脱重复的值。

显示dict.fromkeys()在列表中以提供唯一项的工作的示例如下:

my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))

Output:

['a', 'x', 'y', 'b', 'c']

使用for循环从列表中删除重复项

使用for循环,我们将遍历项目列表以删除重复项。

首先将数组初始化为空,即myFinallist = []。在for循环中,添加检查列表中的项是否存在于数组myFinallist中。如果不存在,则使用append()将其添加到数组myFinallist中。 方法。

因此,每当遇到重复项时,它将已经存在于数组myFinallist中,并且不会被插入。 现在让我们在下面的示例中进行检查:

my_list = [1,2,2,3,1,4,5,1,2,6] myFinallist = [] for i in my_list: if i not in myFinallist: myFinallist.append(i) print(list(myFinallist))

Output:

[1, 2, 3, 4, 5, 6]

使用列表推导(list comprehension)从列表中删除重复项

列表推导是Python函数,用于使用已经创建的序列来创建新序列(例如列表,字典等)。 这可以帮助您减少更长的循环,并使代码更易于阅读和维护。

让我们利用列表推导从给定列表中删除重复项。

my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [] [my_finallist.append(n) for n in my_list if n not in my_finallist] print(my_finallist)

Output:

[1, 2, 3, 4, 5, 6]

使用Numpy unique()方法从列表中删除重复项。

Numpy模块中的unique()方法可以帮助我们从给定列表中删除重复项。

要使用Numpy首先导入numpy模块,您需要执行以下步骤:

步骤1)导入Numpy模块

import numpy as np

第2步:将您的列表与唯一方法内的重复项一起使用,如下所示。 使用tolist()方法将输出转换回列表格式。

myFinalList = np.unique(my_list).tolist()

步骤3)最后打印清单,如下所示:

print(myFinalList)

最终代码如下:

import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)

Output:

[1, 2, 3, 4, 5, 6]

使用Pandas方法从列表中删除重复项

Pandas模块具有一个unique()方法,该方法将为我们提供给定列表中的唯一元素。

要使用Pandas模块,您需要执行以下步骤:

步骤1)导入Pandas模块

import pandas as pd

第2步)将列表与unique()方法中的重复项一起使用,如下所示:

myFinalList = pd.unique(my_list).tolist()

步骤3)打印列表,如下所示:

print(myFinalList)

最终代码如下:

import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)

Output:

[1, 2, 3, 4, 5, 6]

使用enumerate()和 list comprehension 删除重复项

在这里,列表推导和枚举的组合可以删除重复的元素。 枚举返回一个对象,该对象带有一个指向列表中每个元素的计数器。 例如(0,1),(1,2)等。这里的第一个值是索引,第二个值是列表项。

检查每个元素是否在列表中,如果存在,则将其从列表中删除。

my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] print(list(my_finallist))

Output:

[1, 2, 3, 4, 5, 6]

摘要,