def unique(a):
    indices = sorted(list(range(len(a))), key=a.__getitem__)
indices = set(next(it) for k, it in itertools.groupby(indices, key=a.
    __getitem__))
return [x for i, x in enumerate(a) if i in indices]
Удаление повторяющихся элементов из списка Python, содержащего нехешируемые элементы, при сохранении порядка?