← Все вопросы
Как убрать дубликаты из списка, сохранив порядок?
5
set() дубликаты убирает, но порядок ломается. Нужно убрать повторы и при этом сохранить исходный порядок элементов. Как?
2 ответа
10
✓ Принятый ответ — помог автору
dict.fromkeys помнит порядок вставки:
items = [3, 1, 3, 2, 1]
res = list(dict.fromkeys(items)) # [3, 1, 2]
С Python 3.7 словари хранят порядок, поэтому это работает и читается в одну строку.
Иван Соловьёв dict.fromkeys — изящно, забираю · 7 месяцев назад
3
вручную: пройтись циклом, складывать в результат если ещё не в seen-множестве. Длиннее, но нагляднее.
Ваш ответ
Войдите, чтобы ответить на вопрос.