Как убрать из списка дубликат элемента?
1. Через множество (set)
set)Преобразуем список в
set, а потом обратно вlist.Минус: теряется порядок элементов.
lst = [1, 2, 2, 3, 4, 3]
unique_lst = list(set(lst))
print(unique_lst) # Порядок может быть [1, 2, 3, 4] или другой2. Через dict.fromkeys()
dict.fromkeys()Сохраняет порядок элементов (Python 3.7+).
lst = [1, 2, 2, 3, 4, 3]
unique_lst = list(dict.fromkeys(lst))
print(unique_lst) # [1, 2, 3, 4]3. Через генератор с проверкой
Можно вручную проверять, что элемент ещё не встречался.
Сохраняется порядок.
lst = [1, 2, 2, 3, 4, 3]
unique_lst = []
for item in lst:
if item not in unique_lst:
unique_lst.append(item)
print(unique_lst) # [1, 2, 3, 4]4. Через collections.OrderedDict (для старых версий Python)
collections.OrderedDict (для старых версий Python)from collections import OrderedDict
lst = [1, 2, 2, 3, 4, 3]
unique_lst = list(OrderedDict.fromkeys(lst))
print(unique_lst) # [1, 2, 3, 4]5. Вывод
Способ
Сохраняет порядок
Быстрота
Простой
set
❌
Быстро
Да
dict.fromkeys
✅
Быстро
Да
генератор
✅
Медленнее
Да
OrderedDict
✅
Быстро
Да, но устаревший
💡 В автотестах часто используют dict.fromkeys() или set, чтобы убрать дубликаты из списка элементов UI, API ответов или тестовых данных.
Last updated
Was this helpful?