Menu Close

Python List删除重复项

list是一个包含不同Python对象的容器,这些对象可以是整数,字符串,值等。它等效于其他编程语言中的数组。

因此,这里将以不同的方式介绍list删除重复项的方法。

在本教程中,您将学习:

  • Set删除重复项
  • 临时list删除重复项。
  • Dict list删除重复项
  • for循环删除重复项
  • list comprehension删除重复项
  • Numpy unique()方法删除重复项。
  • Pandas方法删除重复项
  • enumerate()删除重复项

使用Set删除重复项

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

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

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

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

Output:

{1, 2, 3, 4, 5, 6}

使用临时list删除重复项

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

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

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("去重前: ", my_list)
temp_list = []

for i in my_list:
    if i not in temp_list:
        temp_list.append(i)

my_list = temp_list

print("去重后: ", my_list)

Output:

去重前: [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
去重后: [1, 2, 3, 4, 5, 6]

使用Dict删除重复项

我们可以通过从collections 中导入OrderedDict来删除重复项。OrderedDict根据出现的顺序返回不同的元素。

如下所示:

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()从list中获取不同的元素。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循环,我们将通过遍历的方式删除重复项。

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("去重前: ", my_list)
temp_list = []

for i in my_list:
    if i not in temp_list:
        temp_list.append(i)

my_list = temp_list

print("去重后: ", my_list)

Output:

去重前: [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
去重后: [1, 2, 3, 4, 5, 6]

list comprehension删除重复项

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()方法可以删除重复项。

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()方法去除重复项示例:

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删除重复项

示例:

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

Output:

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

python系列教程目录

Posted in Python

发表评论

相关链接