如何从列表中删除重复项并返回新列表?
发布时间:2023-08-12 10:02:43
要从列表中删除重复的项并返回新列表,有几种方法可以实现。以下是其中几种常用的方法:
方法一:使用循环和条件判断
1. 创建一个新的空列表用于存储不重复的项,命名为new_list。
2. 遍历原始列表,对于每一个元素,判断是否已经存在于new_list中。
3. 如果元素不在new_list中,则将其添加到new_list中。
4. 循环结束后,new_list即为删除重复项后的新列表。
代码示例:
def remove_duplicates_1(lst):
new_list = []
for item in lst:
if item not in new_list:
new_list.append(item)
return new_list
方法二:使用集合
1. 将原始列表转换为集合,集合的特点是不允许有重复项。
2. 将集合转换回列表。
代码示例:
def remove_duplicates_2(lst):
return list(set(lst))
方法三:使用列表推导式
1. 使用列表推导式遍历原始列表,对于每一个元素,只保留 次出现的。
2. 返回新的列表。
代码示例:
def remove_duplicates_3(lst):
return [item for i, item in enumerate(lst) if item not in lst[:i]]
这些方法的时间复杂度都是O(n^2),其中n是原始列表的长度。如果需要处理大型列表,可以考虑使用方法二或方法三,它们的时间复杂度更低。
