当前位置:首页 > 行业动态 > 正文

python列表如何去重复

在Python中,可以使用以下几种方法去除列表中的重复元素:

1、使用set()函数

2、使用列表推导式

3、使用for循环和if条件判断

4、使用sorted()函数和enumerate()函数

下面分别介绍这四种方法:

1. 使用set()函数

将列表转换为集合(set),集合中的元素是唯一的,然后再将集合转换回列表,这种方法会改变原列表的顺序。

lst = [1, 2, 2, 3, 4, 4, 5]
lst_no_duplicates = list(set(lst))
print(lst_no_duplicates)

输出结果:

[1, 2, 3, 4, 5]

2. 使用列表推导式

通过列表推导式,遍历列表中的每个元素,如果元素不在新列表中,则将其添加到新列表中,这种方法会保留原列表的顺序。

lst = [1, 2, 2, 3, 4, 4, 5]
lst_no_duplicates = []
[lst_no_duplicates.append(i) for i in lst if i not in lst_no_duplicates]
print(lst_no_duplicates)

输出结果:

[1, 2, 3, 4, 5]

3. 使用for循环和if条件判断

通过for循环遍历列表中的每个元素,如果元素不在新列表中,则将其添加到新列表中,这种方法会保留原列表的顺序。

lst = [1, 2, 2, 3, 4, 4, 5]
lst_no_duplicates = []
for i in lst:
    if i not in lst_no_duplicates:
        lst_no_duplicates.append(i)
print(lst_no_duplicates)

输出结果:

[1, 2, 3, 4, 5]

4. 使用sorted()函数和enumerate()函数

首先对列表进行排序,然后使用enumerate()函数遍历排序后的列表,如果当前元素与前一个元素不同,则将其添加到新列表中,这种方法会保留原列表的顺序。

lst = [1, 2, 2, 3, 4, 4, 5]
lst_no_duplicates = []
for i, num in sorted(enumerate(lst), key=lambda x: x[1]):
    if i == 0 or num != lst[i 1]:
        lst_no_duplicates.append(num)
print(lst_no_duplicates)

输出结果:

[1, 2, 3, 4, 5]
0