Если вы хотите сохранить порядок и не использовать какие-либо внешние модули, вот простой способ сделать это:
>>> t = [1, 9, 2, 3, 4, 5, 3, 6, 7, 5, 8, 9]
>>> list(dict.fromkeys(t))
[1, 9, 2, 3, 4, 5, 6, 7, 8]
Примечание: этот метод сохраняет порядок появления, поэтому, как видно выше, девять будут приходить после одного, потому что это был первый раз, когда он появился. Это, однако, тот же результат, который вы получили бы при выполнении
from collections import OrderedDict
ulist=list(OrderedDict.fromkeys(l))
но он намного короче и работает быстрее.
Это работает, потому что каждый раз, когда функция fromkeys
пытается создать новый ключ, если значение уже существует, оно просто перезаписывает его. Однако это никак не повлияет на словарь, так как fromkeys
создает словарь, в котором все ключи имеют значение None
, поэтому эффективно удаляет все дубликаты таким образом.