Как удалить дубликаты из списка в python?

Пользователь

от sherwood_littel , в категории: Python , 3 года назад

Как удалить дубликаты из списка в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 3 года назад

@sherwood_littel  Самый простой способ для удаления дубликатов - использование set(), но есть и другие варианты. Например, создание нового массива и сравнение добавляемых значений.


1
2
3
4
5
array = [1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 5, 6, 6, 6, 7, 8, 9]

print(set(array))

# Вывод : {1, 2, 3, 4, 5, 6, 7, 8, 9}



1
2
3
4
5
6
7
8
array = [1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 5, 6, 6, 6, 7, 8, 9]

sorted_array = list()
[sorted_array.append(x) for x in array if x not in sorted_array]

print(sorted_array)

# Вывод : [1, 2, 3, 4, 5, 6, 7, 8, 9]

Пользователь

от jerad.kuphal , 2 года назад

@sherwood_littel 

Для удаления дубликатов из списка в Python можно использовать метод set() или функцию list() в сочетании с оператором in.


Вот несколько способов, которые вы можете использовать:

  1. Метод set():
1
2
3
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
my_list = list(set(my_list))
print(my_list)


Результат:

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


  1. С помощью цикла for и оператора in:
1
2
3
4
5
6
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
new_list = []
for i in my_list:
    if i not in new_list:
        new_list.append(i)
print(new_list)


Результат:

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


  1. С помощью генератора списков:
1
2
3
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
new_list = list(dict.fromkeys(my_list))
print(new_list)


Результат:

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


Какой способ использовать зависит от ваших предпочтений и требований к производительности.