如何在Python实现列表去重并保持原来顺序

一、实现目标

在python中现有如下列表:

["a", "b", "a", "c", "b", "a"]

如何实现此列表去重,并保持原来的顺序不变。即变成如下新列表。

["a", "b", "c"]

二、问题分析

如果用set()直接去重,就难以保证列表元素原来的顺序,因此不能直接用set。而是用下面的两种办法。

1.空列表法

采用空列表法,新建一个空列表,然后遍历旧列表,如果新列表没有,就把旧列表的元素添加进去,这样就实现了列表去重,代码如下:

old = ["a", "b", "a", "c", "b", "a"]
new = []
for item in old:
    if item not in new:
        new.append(item)
print(new)

结果展示

2. 字典法

采用字典法,利用dict.fromkeys(),这种方法建立起键名为old元素,键值为none的字典,由于字典不能重复,所以重复键名会被删除,并保留原来的元素顺序,相对前者的遍历、判断,方法更为简单,代码如下:

old = ["a", "b", "a", "c", "b", "a"]
dic = dict.fromkeys(old)
new = list(dic.keys())
print(new)

字典法展示

也可以使用OrderedDict这个包来为列表去重,并保持原来的顺序。

from collections import OrderedDict
# 初始列表
original_list = ["a", "b", "a", "c", "b", "a"]
# 使用有序字典去重,同时保持顺序
unique_list = list(OrderedDict.fromkeys(original_list))
print(unique_list)

三、学后反思

  1. 两种方法更有所长,但是第二方法更为简单,代码量最少,效率应该是最高。第一种方法由于要遍历和判断,可能效率有点儿低。
  2. 学习Python有时要多种方法并用,虽然殊途同归,但可以更好地把各个知识点融汇贯通,增强对知识点的理解和把握。
  3. 字典的用途非常广泛,无论是列表去重、词频统计、批量替换,都少不了它的身影,所以要认真地学习,多多上机操练,用一些常用的案例来巩固所学的知识。
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PythonFun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值