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

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循环或者将字典视为有序的集合来进行去重操作。