下面我将详细讲解“Python实现去除列表中重复元素的方法总结【7种方法】”的完整攻略。
在 Python 编程中,经常会遇到需要从列表中删除重复元素的场景。比如,我们从数据库中获取了一个列表,但是其中可能包含重复的元素,这时候我们就需要去重。
那么问题来了,Python 中有哪些方法可以去除列表中的重复元素呢?
本篇文章将为大家总结 7 种 Python 实现去除列表中重复元素的方法,其中包括使用 set()、for 循环、enumerate()、列表推导式、filter()、map() 和 reduce() 等方法。这些方法各有优缺点,不同的场景可以选择不同的方法。
Python 中最简单的去重方法就是使用 set(),因为 set() 函数会自动剔除重复元素。将列表转换成 set 集合,再重新转换回列表即可:
orig_list = [1, 2, 3, 2, 1]
new_list = list(set(orig_list))
print(new_list) # 输出 [1, 2, 3]
使用 for 循环也可以实现去重,具体方法是将每个元素与后面的元素比较,如果相同就删除一个,直到整个列表没有重复元素。
orig_list = [1, 2, 3, 2, 1]
new_list = []
for i in orig_list:
if i not in new_list:
new_list.append(i)
print(new_list) # 输出 [1, 2, 3]
使用 enumerate() 可以同时获得下标和元素值,结合 for 循环可以实现列表去重,具体方法如下:
orig_list = [1, 2, 3, 2, 1]
new_list = []
for i, item in enumerate(orig_list):
if item not in new_list:
new_list.append(item)
print(new_list) # 输出 [1, 2, 3]
Python 中还可以使用列表推导式去重。列表推导式是 Python 中非常方便的语法,可以快速生成新的列表。
orig_list = [1, 2, 3, 2, 1]
new_list = []
[new_list.append(i) for i in orig_list if i not in new_list]
print(new_list) # 输出 [1, 2, 3]
Python 中的 filter() 函数可以按照指定条件过滤出列表中的元素,具体操作如下:
orig_list = [1, 2, 3, 2, 1]
new_list= list(filter(lambda x: orig_list.count(x) == 1, orig_list))
print(new_list) # 输出 [3]
将列表中的元素转换成 set 集合,去掉重复元素再回复成列表。
orig_list = [1, 2, 3, 2, 1]
new_list = list(map(int, set(orig_list)))
print(new_list) # 输出 [1, 2, 3]
可以使用 reduce() 函数来迭代遍历列表去重,具体操作如下:
from functools import reduce
orig_list = [1, 2, 3, 2, 1]
new_list = list(reduce(lambda x, y: x if y in x else x + [y], orig_list, []))
print(new_list) # 输出 [1, 2, 3]
本文总结了 7 种 Python 实现去除列表中重复元素的方法,包括使用 set()、for 循环、enumerate()、列表推导式、filter()、map() 和 reduce() 等方法。各种方法各有优劣,应该根据实际情况选择最适合的方法。
本文链接:http://task.lmcjl.com/news/3380.html