Уникальный список Python с использованием set [duplicate]

Возможный дубликат:
Как вы удаляете дубликаты из списка в Python, сохраняя порядок?

То, что я пытаюсь сделать, это написать метод, который принимает список в качестве аргумента и использует набор для возврата копии списка, где каждый элемент встречается только один раз, а также наличие элементов в новом списке в порядке их Первое вхождение в исходном списке. Я должен использовать набор для этого, однако, я не могу сделать так, чтобы вывод был в правильном порядке при быстром результате. Если я поставлю что-то вроде этого:

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

Это дает мне желаемый результат, но недостаточно быстро. Если я передам список с миллионом элементов, я мог бы ждать полчаса, тогда как один вкладыш там занимает меньше секунды. Как я мог решить эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос