> 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]

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to