从Python列表中删除重复项
列表是一个包含不同Python对象的容器,该对象可以是整数,字符串,布尔值等。它等同于其他编程语言中的数组。
因此,在这里我们将通过不同的方式来从列表中删除重复值。
在这节中,我们将学习:
使用Set()方法 从列表中删除重复项使用临时列表从列表中删除重复项。使用Dict方法 从列表中删除重复项使用for循环 从列表中删除重复项使用列表推导式 从列表中删除重复项使用Numpy unique()方法 从列表中删除重复项。使用Pandas方法 从列表中删除重复项使用enumerate()删除重复值使用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))
输出:
[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)
输出:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates [1, 2, 3, 4, 5, 6]
使用Dict从列表中删除重复项
通过从collections中导入OrderedDict,我们可以从给定列表中删除重复项。 从python2.7开始可用。 OrderedDict负责按键显示的顺序返回不同的元素。
让我们使用OrderedDict中的fromkeys()方法从列表中获取唯一元素。
要使用OrderedDict.fromkey()方法,必须从collections中导入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))
输出:
['a', 'x', 'y', 'b', 'c']
从Python 3.5及更高版本开始,我们可以使用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))
输出:
['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))
输出:
[1, 2, 3, 4, 5, 6]
使用列表推导式从列表中删除重复项
让我们利用列表推导式从列表中删除重复值,示例如下:
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)
输出:
[1, 2, 3, 4, 5, 6]
使用Numpy中的 unique()方法从列表中删除重复值
Numpy模块中的unique()方法可以帮助我们从给定列表中删除重复值。
要使用Numpy首先需要导入numpy模块,执行以下步骤:
步骤1)导入Numpy模块
import numpy as np
第2步)将列表与unique()方法一同使用,如下所示。 使用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)
输出
[1, 2, 3, 4, 5, 6]
使用Pandas方法从列表中删除重复值
Pandas模块也有一个unique()方法,该方法将为我们提供给定列表中的唯一元素。
要使用Pandas模块,需要执行以下步骤:
步骤1)导入模块
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)
输出;
[1, 2, 3, 4, 5, 6]
使用enumerate()方法和列表推导式删除重复值
示例代码如下:
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))
输出:
[1, 2, 3, 4, 5, 6]
总结如下:
要从列表中删除重复项,可以使用内置函数set()。 set()方法返回不同的元素。可以从collections中导入OrderedDict从给定列表中删除重复值。 从python2.7开始可用。 OrderedDictdict按键值显示的顺序返回不同的元素。我们可以用for循环,我们将遍历项目列表以删除重复值。Numpy模块中的unique()方法可以帮助我们从给定列表中删除重复值。Pandas模块也具有一个unique()方法,该方法可以返回列表中的唯一元素。列表推导式和enumerate()方法也可从列表中删除重复元素。 enumerate()方法返回一个对象,该对象带有一个指向列表中每个元素的计数器。
希望这篇文章对你们有用,
欢迎在下方讨论留言,
谢谢关注.