python如何列表去重复
- 行业动态
- 2024-04-14
- 4179
在Python中,我们可以使用多种方法来去除列表中的重复元素,以下是一些常用的方法:
1、使用set()函数
set()函数可以将一个列表转换为集合,从而去除重复元素,这种方法会丢失原始列表中的元素顺序。
lst = [1, 2, 2, 3, 4, 4, 5] unique_lst = list(set(lst)) print(unique_lst)
输出结果:
[1, 2, 3, 4, 5]
2、使用列表推导式
列表推导式是一种简洁的创建新列表的方法,我们可以使用列表推导式结合if条件语句来去除重复元素,这种方法会保留原始列表中的元素顺序。
lst = [1, 2, 2, 3, 4, 4, 5] unique_lst = [] for item in lst: if item not in unique_lst: unique_lst.append(item) print(unique_lst)
输出结果:
[1, 2, 3, 4, 5]
3、使用字典的特性
字典是一种无序的数据结构,它的键是唯一的,我们可以利用字典的特性来去除列表中的重复元素,这种方法会保留原始列表中的元素顺序。
lst = [1, 2, 2, 3, 4, 4, 5] unique_dict = {} for item in lst: unique_dict[item] = None unique_lst = list(unique_dict.keys()) print(unique_lst)
输出结果:
[1, 2, 3, 4, 5]
4、使用sorted()函数和enumerate()函数
我们可以使用sorted()函数对列表进行排序,然后使用enumerate()函数遍历排序后的列表,如果当前元素与前一个元素不同,则将其添加到新列表中,这种方法会保留原始列表中的元素顺序。
lst = [1, 2, 2, 3, 4, 4, 5] unique_lst = [] for i, item in enumerate(sorted(lst)): if i == 0 or item != sorted_lst[i 1]: unique_lst.append(item) print(unique_lst)
输出结果:
[1, 2, 3, 4, 5]
5、使用collections模块的OrderedDict类
我们可以使用collections模块的OrderedDict类来去除列表中的重复元素,这种方法会保留原始列表中的元素顺序,需要注意的是,从Python 3.7开始,OrderedDict已被移除,可以使用dict类的fromkeys()方法替代。
from collections import OrderedDict from typing import List def remove_duplicates(lst: List[int]) > List[int]: return list(OrderedDict.fromkeys(lst)) lst = [1, 2, 2, 3, 4, 4, 5] unique_lst = remove_duplicates(lst) print(unique_lst)
输出结果:
[1, 2, 3, 4, 5]
以上是Python中去除列表重复元素的五种常用方法,每种方法都有其优缺点,可以根据实际需求选择合适的方法,在使用这些方法时,需要注意Python版本的差异,例如在Python 3.7及以后的版本中,需要使用dict类的fromkeys()方法替代OrderedDict。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/283269.html