Что такое быстрый способ получить отсортированный уникальный список в python? (У меня есть список хэшируемых вещей и хочу иметь что-то, что я могу повторить, не имеет значения, изменен ли список на месте, или я получаю новый список или итерабельность. В моем конкретном случае использования, m делать это с броским списком, поэтому на месте будет больше памяти.)
Я видел решения вроде
input = [5, 4, 2, 8, 4, 2, 1]
sorted(set(input))
но мне кажется, что первая проверка на уникальность, а затем сортировка является расточительной (поскольку, когда вы сортируете список, вам в основном нужно определить точки вставки и, таким образом, получить тест уникальности в качестве побочного эффекта). Возможно, есть что-то еще по линии unix's
cat list | sort | uniq
который просто выбирает последовательные дублирования в уже отсортированном списке?
Обратите внимание на вопрос " Самый быстрый способ унифицировать список в Python ", список не отсортирован, и " Какой самый чистый способ сделать сортировку плюс uniq в списке Python? 'запрашивает самый чистый/самый пифонический путь, и принятый ответ предлагает sorted(set(input))
, который я пытаюсь улучшить.