欢迎访问宙启技术站
智能推送

Python中使用set()函数去重的方法

发布时间:2023-06-12 19:54:42

Python中提供了一种简单易用的去重方法——set()函数。

set()函数是Python自带的一种数据类型,它类似于列表或元组,但有一点不同——它不允许重复的元素。也就是说,每个元素只能在set()中出现一次。

使用set()函数进行去重十分简单,只需将需要去重的列表或元组作为参数传递给set()函数即可。下面是一个示例代码,展示如何使用set()函数实现列表去重:

lst = [1, 2, 3, 3, 4, 5, 5]
lst = list(set(lst))
print(lst)

运行这段代码,输出结果为:

[1, 2, 3, 4, 5]

可以看出,使用set()函数后,重复的元素被自动去掉了。

同样的,如果是对元组进行去重,只需要将元组作为参数传递给set()函数即可。下面是一个对元组进行去重的示例代码:

tpl = (1, 2, 3, 3, 4, 5, 5)
tpl = tuple(set(tpl))
print(tpl)

运行这段代码,输出结果为:

(1, 2, 3, 4, 5)

由于元组是不可变类型,所以需要将set()函数返回的集合转换为元组。

需要注意的是,使用set()函数进行去重时,会打乱原有的元素顺序。因为集合本身是无序的,而且在Python中,集合的元素顺序是不可预测的。如果需要保留原有的元素顺序,可以使用Python内置的OrderedDict(有序字典)。

除了使用set()函数外,还可以使用Python内置的函数remove_duplicates()进行去重。remove_duplicates()函数属于Python中的标准库,可以对列表、元组、字符串等进行去重。下面是一个使用remove_duplicates()函数进行列表去重的示例代码:

from collections import OrderedDict

def remove_duplicates(lst):
    return list(OrderedDict.fromkeys(lst))

lst = [1, 2, 3, 3, 4, 5, 5]
lst = remove_duplicates(lst)
print(lst)

运行这段代码,输出结果与之前相同:

[1, 2, 3, 4, 5]

需要注意的是,这种方法相对于使用set()函数会稍微费一些时间。因为在去重时需要将列表转换为有序字典,需要进行一些额外的操作。但是相对于集合(set())而言,OrderedDict可以保留原有的元素顺序,这也是其使用的一个优点。

综上所述,使用set()函数进行去重是Python中十分常用的方法之一,其具有简单易用、速度快等特点。对于对元素顺序要求并不高的情况,使用set()函数可以说是去重的 选择。