Как удалить повторяющиеся элементы из списка Python?
Наиболее эффективный способ, позволяющий удалить повторяющиеся элементы из списка Python основан на преобразовании типов данных: list -> set -> list
. Суть этого способа заключается в том, что множество set не может содержать одинаковые элементы. Таким образом, при преобразовании списка во множество, дублирующиеся элементы исключаются.
Рассмотрим практический пример удаления повторяющихся элементов с помощью функции, преобразования во множество set()
, после чего рассмотрим еще один способ, позволяющий исключить дубликаты из списка:
- Удаление повторяющихся элементов из списка с помощью функции set()
- Удаление дубликатов с использованием цикла for
Удаление повторяющихся элементов из списка 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.