Python3——列表去重的方法

本文介绍了四种去除Python列表中重复元素的方法:使用set进行快速去重但会改变元素顺序;通过遍历元素并检查新列表中是否存在该元素来保持原顺序;利用reduce函数实现相同效果;并提供了更多参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.方法一:set去重

lst1 = [1,4,4,2,3,4,5,6,1]
print(lst1)             # [1, 4, 4, 2, 3, 4, 5, 6, 1]
print(set(lst1))        # {1, 2, 3, 4, 5, 6}
lst2 = list(set(lst1))
print(lst2)             # [1, 2, 3, 4, 5, 6]

可以看到使用set可以方便的去重列表,不过该方法有个弊端,会打乱元素的顺序。
那有没办法保持原列表的顺序呢?
其实每个列表中的元素都有自己的index,因此,我们可以借助sort来指定sort的key为index,保持去重后列表的原序

lst1 = [1,4,4,2,3,4,5,6,1]
print(lst1)             # [1, 4, 4, 2, 3, 4, 5, 6, 1]
print(set(lst1))        # {1, 2, 3, 4, 5, 6}
lst2 = list(set(lst1))
lst2.sort(key=lst1.index)
print(lst2)              # [1, 4, 2, 3, 5, 6]

2. 方法二:将元素放到新列表

新建一个空列表,然后将不重复的元素逐一放到新列表中

lst1 = [1,4,4,2,3,4,5,6,1]
lst2 = []
for i in lst1:
    if i not in lst2:
        lst2.append(i)
print(lst2)    # [1, 4, 2, 3, 5, 6]

3. 方法三:reduce函数

from functools import reduce
lst1 = [1,4,4,2,3,4,5,6,1]
func = lambda x,y:x if y in x else x + [y]
print(reduce(func,[[],]+lst1))   # [1, 4, 2, 3, 5, 6]

4、其它方法可参考博客

https://www.cnblogs.com/xxpythonxx/p/12181224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值