Unique Elements in a List
Nyet Ya Koshka
coldtortuga at yahoo.com
Tue May 17 12:32:18 EDT 2005
> One reasonable solution might be as follows:
>
> def unique_elts(seq):
> elts = {}
> for pos, elt in enumerate(seq):
> elts.setdefault(elt, []).append(pos)
>
> return [ (x, p[0]) for (x, p) in elts.iteritems()
> if len(p) == 1 ]
>
Minor tweak to conserve space:
def bachelor_filter(iter_over_hashables):
B={}
for index, elem in enumerate(iter_over_hashables):
if B.setdefault(elem, index) != index:
B[elem]=None
return [pair for pair in B.items() if pair[1] is not None]
More information about the Python-list
mailing list