[Python-ideas] Uniquify attribute for lists

Steven D'Aprano steve at pearwood.info
Fri Nov 16 19:21:24 CET 2012


On 16/11/12 23:28, Robrecht De Rouck wrote:
> Hello,
>
> I just wanted to bring to your attention that an *attribute for removing
> duplicate elements* for lists would be a nice feature.
>
> *def uniquify(lis):
>      seen = set()
>      seen_add = seen.add
>      return [ x for x in lis if x not in seen and not seen_add(x)]*

That won't work for a general purpose function, because lists can hold
unhashable items, and sets require hashable.

Here's an old recipe predating sets that solves the problem in a number
of different ways. Read the comments for versions that don't lose order.



-- 
Steven



More information about the Python-ideas mailing list