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

如何从列表中删除重复项并返回新列表?

发布时间: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是原始列表的长度。如果需要处理大型列表,可以考虑使用方法二或方法三,它们的时间复杂度更低。