Как убрать дубликаты из списка
Убрать повторы из списка проще всего через множество (set), которое хранит только уникальные значения.
Быстрый способ: set()
Превращаем список в множество — повторы исчезают, потому что в множестве каждое значение только одно. Потом при желании возвращаем обратно в список.
nums = [1, 2, 2, 3, 3, 3]
print(list(set(nums))) # [1, 2, 3]
Если важен порядок
Множество не хранит порядок. Чтобы убрать дубликаты, но сохранить исходную последовательность, используют dict.fromkeys() — он оставляет первое вхождение каждого элемента.
items = ['a', 'b', 'a', 'c', 'b']
print(list(dict.fromkeys(items))) # ['a', 'b', 'c']
Какой выбрать
Порядок не важен — set() короче и быстрее. Порядок важен (например, список действий) — dict.fromkeys(). Оба способа не меняют исходный список, а создают новый.
Частые вопросы
Почему set меняет порядок? Множество не хранит порядок по своей природе.
Работает ли это со строками? Да, но set вернёт набор уникальных символов.
Начать игру бесплатно