python列表去重_一日一技:从Python列表中删除重复值

8cb1cb134954092398ca50f6cdfe260fb1de49c7.jpeg?token=347baf15bf7268685e8c9115bb4b07ef&s=BCB14992F2EAC0FC5CF8D5AF0300F005

从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()方法返回一个对象,该对象带有一个指向列表中每个元素的计数器。

希望这篇文章对你们有用,

欢迎在下方讨论留言,

谢谢关注.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值