On 12월14일, 오전10시19분, knifenomad <knifeno...@gmail.com> wrote: > On 12월14일, 오전2시57분, mattia <ger...@gmail.com> wrote: > > > > > > > Il Sun, 13 Dec 2009 16:37:20 +0000, mattia ha scritto: > > > > 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 > > > Ok, so you all suggest to use a set. Now the second question, more > > interesting. Why can't I insert a list into a set? I mean, I have a > > function that returns a list. I call this function several times and > > maybe the list returned is the same as another one already returned. I > > usually put all this lists into another list. How can I assure that my > > list contains only unique lists? Using set does'n work (i.e. the python > > interpreter tells me: TypeError: unhashable type: 'list')... > > this makes the set type hashable. > > class Set(set): > __hash__ = lambda self: id(self) > > s = Set() > s.add(1) > s.add(2) > s.add(1) > > print s > set([1, 2]) > > d = {} > d[s] = 'voila' > > print d > {Set([1,2]):'voila'} > > print d[s] > 'voila'- 원본 텍스트 숨기기 - > > - 원본 텍스트 보기 -
although it's not what you've asked about. it's intereting to make set hashable using __hash__. -- http://mail.python.org/mailman/listinfo/python-list