Как убрать из списка дубликат элемента?

1. Через множество (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()

  • Сохраняет порядок элементов (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)

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?