Python 实现列表去重

Python 实现列表去重

Python 实现列表去重

在实际的编程工作中,经常会遇到需要对列表进行去重的情况。列表去重的意思是将列表中重复的元素去除,保留唯一的元素。本文将介绍几种常用的方法来实现列表去重。

方法一:使用set

最简单的方法是利用set数据结构的特性,set是一个无序且不重复的集合,将列表转换为set,然后再将set转换为列表即可实现去重。

def dedupe_list(lst):
    return list(set(lst))

# 测试示例
original_list = [1, 2, 3, 2, 4, 3, 5]
deduped_list = dedupe_list(original_list)
print(deduped_list)
Python

运行结果:

[1, 2, 3, 4, 5]
Python

方法二:使用列表推导式

另一种常见的方法是利用列表推导式,遍历原始列表中的元素,只添加未出现过的元素到新列表中,从而达到去重的目的。

def dedupe_list(lst):
    deduped_list = []
    [deduped_list.append(x) for x in lst if x not in deduped_list]
    return deduped_list

# 测试示例
original_list = [1, 2, 3, 2, 4, 3, 5]
deduped_list = dedupe_list(original_list)
print(deduped_list)
Python

运行结果:

[1, 2, 3, 4, 5]
Python

方法三:使用字典

通过遍历列表中的元素,将元素作为字典的键,这样重复的元素会被覆盖,最后取出字典中的所有键即可得到去重后的列表。

def dedupe_list(lst):
    deduped_dict = {x: None for x in lst}
    return list(deduped_dict.keys())

# 测试示例
original_list = [1, 2, 3, 2, 4, 3, 5]
deduped_list = dedupe_list(original_list)
print(deduped_list)
Python

运行结果:

[1, 2, 3, 4, 5]
Python

方法四:使用fromkeys方法

还可以利用字典的fromkeys方法来生成一个值全为None的字典,然后取出字典的键即可得到去重后的列表。

def dedupe_list(lst):
    deduped_dict = dict.fromkeys(lst)
    return list(deduped_dict.keys())

# 测试示例
original_list = [1, 2, 3, 2, 4, 3, 5]
deduped_list = dedupe_list(original_list)
print(deduped_list)
Python

运行结果:

[1, 2, 3, 4, 5]
Python

方法五:使用排序法

最后一种方法是先对原始列表进行排序,然后遍历列表中的元素,只添加与前一个元素不同的元素到新列表中,从而实现去重。

def dedupe_list(lst):
    lst.sort()
    deduped_list = [lst[0]]
    for i in range(1, len(lst)):
        if lst[i] != lst[i-1]:
            deduped_list.append(lst[i])
    return deduped_list

# 测试示例
original_list = [1, 2, 3, 2, 4, 3, 5]
deduped_list = dedupe_list(original_list)
print(deduped_list)
Python

运行结果:

[1, 2, 3, 4, 5]
Python

以上就是几种常见的方法实现列表去重的方式,可以根据实际情况选择合适的方法来去除列表中的重复元素。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册