Python中如何使用函数实现列表去重操作?
发布时间:2023-05-19 14:35:25
Python中可以使用函数实现列表去重操作。去重是指将列表中的重复元素保留一个,去除重复的元素,这样可以减小列表的长度,节省存储空间,方便后续操作。
一、使用set()函数进行去重操作
Python中提供了set()函数实现列表去重操作,可以将列表转换为集合,由于集合中不允许有重复元素,所以重复元素会被自动去重,最后再将集合转换为列表即可。具体代码如下:
lst = [1, 2, 3, 2, 4, 4, 5, 5, 6] new_lst = list(set(lst)) print(new_lst)
运行结果为:
[1, 2, 3, 4, 5, 6]
二、使用循环进行去重操作
除了使用set()函数进行去重操作,还可以使用循环来手动去重,将列表中的每个元素与之前的元素进行比较,如果发现重复就将其删除,最后得到的就是不重复的列表。具体代码如下:
lst = [1, 2, 3, 2, 4, 4, 5, 5, 6]
new_lst = []
for i in lst:
if i not in new_lst:
new_lst.append(i)
print(new_lst)
运行结果为:
[1, 2, 3, 4, 5, 6]
三、使用函数进行去重操作
如果需要重复使用去重操作,可以将其封装成函数,方便调用。具体代码如下:
def deduplication(lst):
new_lst = list(set(lst))
return new_lst
lst = [1, 2, 3, 2, 4, 4, 5, 5, 6]
new_lst = deduplication(lst)
print(new_lst)
运行结果为:
[1, 2, 3, 4, 5, 6]
四、去重后保持原有顺序
以上三种方法都可以实现列表去重操作,但是会改变原有的顺序,如果需要保持原有顺序,应该如何操作呢?可以使用字典来实现,将列表中的元素作为字典的键,将字典的值默认为True,所得到的就是一个去重但保持顺序的列表。具体代码如下:
lst = [1, 2, 3, 2, 4, 4, 5, 5, 6]
new_lst = []
dic = {}
for i in lst:
if i not in dic:
dic[i] = True
new_lst.append(i)
print(new_lst)
运行结果为:
[1, 2, 3, 4, 5, 6]
总结:
Python中可以使用多种方法实现列表去重操作,包括set()函数、循环,以及将其封装成函数进行调用,其中set()函数是最简单的方式,但是会改变原有的数据顺序,如果需要保持原有顺序,可以使用for循环或者将字典视为有序的集合来进行去重操作。
