insert unique data in a list

Fire Crow me at firecrow.com
Sun Dec 13 13:48:11 EST 2009


On Dec 13, 11:37 am, mattia <ger... at gmail.com> wrote:
> How can I insert non-duplicate data in a list? I mean, is there a
> particular option in the creation of a list that permit me not to use
> something like:
> def append_unique(l, val):
>     if val not in l:
>         l.append(val)
>
> Thanks,
> Mattia

You could also define a custom object that manages a custom ordered
set

class unique_set(object):
   def __init__(self,list):
       self.list = list

   def __add___(self,val):
       if val not in self.list
          self.list.append(val)
          return True
       return False

>>> unique_list = unique_set(['a','b','c'])
>>> unique_list.list
['a', 'b', 'c']
>>> unique_list + 'd'
True
>>> unique_list + 'e'
True
>>> unique_list + 'd'
False
>>> unique_list.list
['a', 'b', 'c', 'd', 'e']
>>>

I've used this on a few projects, it makes for wonderfully clean code,
because you can look at your program as an overview without all the
arithmetic behind it.

hope it helps



More information about the Python-list mailing list