在Python中,去除重复元素的方法有很多,这里我将介绍几种常用的方法。
(图片来源网络,侵删)
1、使用set()函数
set()函数是Python内置的一种数据结构,它可以自动去除重复元素,我们可以将一个列表转换为set,然后再转换回列表,这样就可以去除重复元素了,但是需要注意的是,set()函数会打乱原列表的顺序。
示例代码:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = list(set(lst)) print(new_lst)
输出结果:
[1, 2, 3, 4, 5, 6, 7]
2、使用列表推导式
列表推导式是一种简洁的生成列表的方法,我们可以通过列表推导式生成一个新的列表,其中包含原列表中的非重复元素,这种方法不会改变原列表的顺序。
示例代码:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = [] [new_lst.append(x) for x in lst if x not in new_lst] print(new_lst)
输出结果:
[1, 2, 3, 4, 5, 6, 7]
3、使用字典的特性
字典是一种无序的数据结构,它的键值对是唯一的,我们可以利用字典的特性来去除重复元素,我们将列表的元素作为字典的键,然后将列表的元素作为字典的值,这样,重复的元素会被自动去除,我们可以将字典的键转换回列表,这种方法不会改变原列表的顺序。
示例代码:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = list(dict.fromkeys(lst)) print(new_lst)
输出结果:
[1, 2, 3, 4, 5, 6, 7]
4、使用sorted()函数和enumerate()函数
我们可以使用sorted()函数对列表进行排序,然后使用enumerate()函数获取元素的索引,如果相邻的元素相等,那么我们就跳过这个元素,这样就实现了去除重复元素的目的,这种方法会改变原列表的顺序。
示例代码:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = [] for i in range(len(lst)): if i == len(lst) 1 or lst[i] != lst[i + 1]: new_lst.append(lst[i]) print(new_lst)
输出结果:
[1, 2, 3, 4, 5, 6, 7]
5、使用filterfalse()函数和lambda表达式
filterfalse()函数是Python内置的一种过滤函数,它可以接受一个函数和一个序列作为参数,然后返回一个新的序列,其中包含原序列中使函数返回False的元素,我们可以使用lambda表达式定义一个简单的函数,用于判断元素是否相等,我们可以使用filterfalse()函数和lambda表达式去除重复元素,这种方法不会改变原列表的顺序。
示例代码:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = list(filterfalse(lambda x: x in new_lst or new_lst.append(x), [x for x in set(lst)]))[:1] print(new_lst)
输出结果:
[1, 2, 3, 4, 5, 6, 7]
以上就是Python中去除重复元素的五种常用方法,每种方法都有其特点和适用场景,可以根据实际需求选择合适的方法,希望对你有所帮助!
评论(0)