Comment

James Robert

My personal favorite:
(preserves order)

def uniq(iterable, idfunc=lambda x:x):
. . . . seen = set()
. . . . return [seen.add(idfunc(x)) or x for x in iterable if idfunc(x) not in seen]