首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]Python中巧妙消除列表重复元素的五大绝招

发布于 2025-07-21 15:30:04
0
667

绝招一:使用集合(set)Python的集合是一个无序的不重复元素序列。通过将列表转换为集合,我们可以轻松地去除重复元素。def remove_duplicates_with_set(lst): re...

绝招一:使用集合(set)

Python的集合是一个无序的不重复元素序列。通过将列表转换为集合,我们可以轻松地去除重复元素。

def remove_duplicates_with_set(lst): return list(set(lst))
# 示例
my_list = [1, 2, 2, 3, 4, 4, 5]
result = remove_duplicates_with_set(my_list)
print(result) # 输出可能不是排序的,例如 [1, 2, 3, 4, 5]

绝招二:使用排序加一次遍历

先将列表排序,然后在遍历过程中比较相邻元素是否相同,从而去除重复项。

def remove_duplicates_sorted(lst): sorted_lst = sorted(lst) result = [] for i in range(len(sorted_lst)): if i == 0 or sorted_lst[i] != sorted_lst[i-1]: result.append(sorted_lst[i]) return result
# 示例
my_list = [1, 2, 2, 3, 4, 4, 5]
result = remove_duplicates_sorted(my_list)
print(result) # 输出 [1, 2, 3, 4, 5]

绝招三:使用列表推导式

列表推导式是一种优雅的去除重复元素的方法,通过比较每个元素与其前一个元素是否相同来实现。

def remove_duplicates_list_comprehension(lst): result = [lst[0]] for item in lst[1:]: if item != lst[-1]: result.append(item) return result
# 示例
my_list = [1, 2, 2, 3, 4, 4, 5]
result = remove_duplicates_list_comprehension(my_list)
print(result) # 输出 [1, 2, 3, 4, 5]

绝招四:使用dict.fromkeys()方法

利用字典的fromkeys()方法可以创建一个由列表元素作为键的字典,因为字典中的键是唯一的,所以这样可以去除重复元素。

def remove_duplicates_fromkeys(lst): return list(dict.fromkeys(lst))
# 示例
my_list = [1, 2, 2, 3, 4, 4, 5]
result = remove_duplicates_fromkeys(my_list)
print(result) # 输出 [1, 2, 3, 4, 5]

绝招五:使用collections.OrderedDict

Python的collections模块提供了一个OrderedDict类,它保持元素的插入顺序。通过将列表元素作为键插入到OrderedDict中,我们可以去除重复的元素。

from collections import OrderedDict
def remove_duplicates_ordereddict(lst): return list(OrderedDict.fromkeys(lst))
# 示例
my_list = [1, 2, 2, 3, 4, 4, 5]
result = remove_duplicates_ordereddict(my_list)
print(result) # 输出 [1, 2, 3, 4, 5]

通过以上五种方法,你可以根据不同的场景和需求选择最合适的方法来去除Python列表中的重复元素。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流