【软件工具】python中list如何去除重复值

在Python中,有多种方法可以从列表中去除重复值。以下是几种常见的方式:

方法1:使用 set()

set 是一个不包含重复元素的数据结构,因此可以通过将列表转换为 set 再转换回列表来去除重复值。

my_list = [1, 2, 2, 3, 4, 4, 5]

# 使用 set 去除重复值
unique_list = list(set(my_list))

print(unique_list)  # 输出: [1, 2, 3, 4, 5]

注意:使用 set 会打乱原列表的顺序,因为 set 是无序的。如果你需要保留列表的顺序,请参考方法2或方法3。

方法2:使用列表推导和 in

这种方法通过循环遍历原列表并构建一个新的列表,只添加未在新列表中出现过的元素。

my_list = [1, 2, 2, 3, 4, 4, 5]

# 使用列表推导去除重复值,保留顺序
unique_list = []
for item in my_list:
    if item not in unique_list:
        unique_list.append(item)

print(unique_list)  # 输出: [1, 2, 3, 4, 5]

方法3:使用 dict.fromkeys()

在Python 3.7+中,dict 保持插入顺序,因此可以利用 dict 去重并保留顺序。

my_list = [1, 2, 2, 3, 4, 4, 5]

# 使用 dict.fromkeys 去除重复值并保留顺序
unique_list = list(dict.fromkeys(my_list))

print(unique_list)  # 输出: [1, 2, 3, 4, 5]

方法4:使用 collections.OrderedDict

在Python 3.7+中,普通的 dict 已经保持插入顺序,但是如果你使用的是更旧的Python版本,可以使用 OrderedDict 来保留顺序。

from collections import OrderedDict

my_list = [1, 2, 2, 3, 4, 4, 5]

# 使用 OrderedDict 去除重复值并保留顺序
unique_list = list(OrderedDict.fromkeys(my_list))

print(unique_list)  # 输出: [1, 2, 3, 4, 5]

说明:

  1. 保持顺序:方法2、方法3、和方法4都保留了原始列表的顺序,适合在顺序重要的情况下使用。
  2. 效率:如果不需要保持顺序,使用 set 是最快的方式。如果需要保持顺序,dict.fromkeys() 是一种简洁且高效的方法。

选择合适的方法取决于你的具体需求,例如是否需要保留顺序或者是否对性能有要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿寻寻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值