Python对列表保持原有顺序去重

方法一:使用OrderedDict和列表推导式进行保持顺序去重

  • 我们可以使用Python标准库中的OrderedDict对列表进行去重,并使用列表推导式将OrderedDict转换为列表。具体代码如下:

    from collections import OrderedDict
    
    my_list = ['2', '2', '1', '3', '1', '3']
    my_list = list(OrderedDict.fromkeys(my_list))
    print(my_list)  # [2, 1, 3]
    
  • 在这个代码中,我们首先导入了Python标准库中的OrderedDict。然后,我们创建了一个包含重复元素的列表my_list。接下来,我们使用OrderedDict.fromkeys()方法对列表进行去重,并将返回的OrderedDict转换为列表。

方法二:使用set加sorted方法进行去重

  • 我们也可以使用Python内置的set()函数对列表进行去重,并使用sorted()函数按照原有顺序排序。具体代码如下:

    my_list = ['2', '2', '1', '3', '1', '3']
    my_list = sorted(set(my_list), key=my_list.index)
    print(my_list)  # [2, 1, 3]
    
  • 在这个代码中,我们首先创建了一个包含重复元素的列表my_list。接下来,我们使用set()函数对列表进行去重,并使用sorted()函数按照原有顺序排序。由于set()函数会打乱原有顺序,因此我们需要使用key=my_list.index参数来指定排序规则。

总结:

  • 虽然方法一使用的是OrderedDict,看起来更加高级,但是方法二使用的是Python内置函数,代码更加简单,所以推荐使用方法二。两种方法都可以满足我们的需求,具体使用哪种方法可以根据实际情况而定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光不写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值