Python中使用set()函数去重的方法
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()函数可以说是去重的 选择。
