удалить повторяющиеся элементы из списка Python

Как удалить повторяющиеся элементы из списка Python?

Наиболее эффективный способ, реализующий удаление повторяющихся элементов из списка Python, основан на преобразовании типов данных: list -> set -> list. Суть этого способа заключается в том, что множество set не может содержать одинаковые элементы. Таким образом, при преобразовании списка во множество, дублирующиеся элементы исключаются.

Рассмотрим практический пример удаления повторяющихся элементов с помощью функции, преобразования во множество set(), после чего рассмотрим еще один способ, позволяющий исключить дубликаты из списка:

Удаление повторяющихся элементов из списка Python с помощью set():

lst = [0, 1, 2, 3, 3, 2]
lst = list(set(lst))
print(lst)

Вывод на экран:

[0, 1, 2, 3] 

Пояснения к коду:

1. Сначала преобразуем список во множество с помощью функции set(). В качестве аргумента передаем функции set() исходный список lst=([0, 1, 2, 3, 3, 2]). Так как множество в Python не может содержать одинаковые элементы, то в результате получим множество {0, 1, 2, 3}:

print(set([0, 1, 2, 3, 3, 2]))

Вывод на экран:

{0, 1, 2, 3}

2. Так как в конечном итоге мы должны получить список без дубликатов, а на данном этапе мы имеем множество {0, 1, 2, 3}, то нам нужно преобразовать это множество в список. Это легко сделать с помощью функции list():

print(list({0, 1, 2, 3}))

Вывод на экран:

[0, 1, 2, 3] 

Кд удаления повторяющихся элементов из списка с помощью функции set() довольно прост и лаконичен, рекомендую удалять дубликаты из списка именно этим способом. Для сравнения рассмотрим еще один способ, который уже не так лаконичен, но по-прежнему прост:

Как удалить повторяющиеся элементы из списка Python с помощью цикла for:

lst = [0, 1, 2, 3, 3, 2]
new_lst = []

for i in lst:
    if i not in new_lst:
        new_lst.append(i)

print(new_lst)

Вывод на экран:

[0, 1, 2, 3] 

Если быть точным, этот код не удаляет повторяющиеся элементы из списка, а создает новый список без дубликатов.

Пояснения по коду:

1. В строке new_lst = [] мы создаем новый пустой список, в который в дальнейшем будем добавлять элементы из списка lst, предварительно осуществив проверку на дублирование.

2. В цикле for будем осуществлять перебор элементов списка lst: если текущий элемент i не найден в списке new_lst, то есть if i not in new_lst, то этот элемент добавляется в список new_list с помощью метода append(): new_lst.append(i).

Таким образом, в результате выполнения представленного кода, на выходе мы имеем 2 списка: исходный список lst и новый список new_lst, который содержит те же элементы, что и список lst, но за исключением дубликатов. При этом порядок следования элементов сохраняется.


У нас появился Telegram-канал для изучающих Python! Присоединяйтесь: вместе «питонить» веселее! 😉 Ссылка на канал: «Кодим на Python!»


Comments are closed, but trackbacks and pingbacks are open.