Уникальный список Python с использованием set [duplicate]
Возможный дубликат:
Как вы удаляете дубликаты из списка в Python, сохраняя порядок?
То, что я пытаюсь сделать, это написать метод, который принимает список в качестве аргумента и использует набор для возврата копии списка, где каждый элемент встречается только один раз, а также наличие элементов в новом списке в порядке их Первое вхождение в исходном списке. Я должен использовать набор для этого, однако, я могуt сделать так, чтобы выходные данные были в правильном порядке, в то же время имея быстрый результат. Если я поставлю что-то вроде этого:
def unique(a):
return list(set(a))
и передал список с миллионами элементов, это дало бы мне результат быстро, но это незаказывать Итак, что у меня есть сейчас:
def unique(a):
b = set(a)
c = {}
d = []
for i in b:
c[a.index(i)] = i
for i in c:
d.append(c[i])
return d
Это дает мне желаемый результат, но недостаточно быстро. Если я передам список с миллионом элементов, я мог бы ждать полчаса, тогда как один вкладыш там занимает меньше секунды. Как я мог решить эту проблему?