← Все вопросы

Как убрать дубликаты из списка, сохранив порядок?

Задан 7 месяцев назад105 просмотров2 ответа
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-множестве. Длиннее, но нагляднее.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект