Как удалить дубликаты из Python, перечисляют и сохраняют порядок? [дубликат]

Используйте -readonly для удаления только для чтения при отображении, например.

export type Foo = Readonly<{
  foo: number
  bar: number
}>;

export type Writeable<T> = {
  -readonly [P in keyof T]: T[P];
};

export type Bar = Writeable<Foo>;
let x:Bar = {
  foo: 123,
  bar: 456
}
x.bar = 123; // OK 

71
задан Colonel Panic 19 October 2015 в 14:54
поделиться

4 ответа

Список может быть отсортирован и дедуплицировал встроенные функции использования:

myList = sorted(set(myList))
  • set встроенная функция для Python> = 2.3
  • sorted , встроенная функция для Python> = 2.4
190
ответ дан Bengt 24 November 2019 в 12:51
поделиться

Если Ваш вход уже отсортирован, то может быть более простой способ сделать это:

from operator import itemgetter
from itertools import groupby
unique_list = list(map(itemgetter(0), groupby(yourList)))
11
ответ дан sykora 24 November 2019 в 12:51
поделиться

Если это - ясность, Вы после, а не скорость, я думаю, что это очень ясно:

def sortAndUniq(input):
  output = []
  for x in input:
    if x not in output:
      output.append(x)
  output.sort()
  return output

Это - O (n^2), хотя, с повторным использованием не в для каждого элемента входа перечисляют.

3
ответ дан unwind 24 November 2019 в 12:51
поделиться

>, но я не знаю, как получить участников списка от хеша в алфавитном порядке.

Едва ли Ваш основной вопрос, но для дальнейшего использования ответ Rod с помощью sorted может использоваться для того, чтобы пересечь dict ключи в отсортированном порядке:

for key in sorted(my_dict.keys()):
   print key, my_dict[key]
   ...

и также потому что tuple заказаны первым членом кортежа, можно сделать то же с items:

for key, val in sorted(my_dict.items()):
    print key, val
    ...
2
ответ дан davidavr 24 November 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: