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

Как удалить повторяющиеся элементы из списка 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.