Kent Johnson wrote: > The solution is to turn the list into something immutable. One way would > be to convert the lists to tuples: > n1 = list(set(tuple(i) for i in n)) > > This gives you a list of tuples, if you need a list of lists you will > have to convert back which you can do with a list comprehension: > n1 = [ list(j) for j in set(tuple(i) for i in n)) ] > > Another way would be to use the string representation of the list as a > dictionary key and the original list as the value, then pull the > original lists back out: > n1 = dict((repr(i), i) for i in n).values()
You could combine these two, use a tuple as the key but retain the list: n1 = dict((tuple(i), i) for i in n).values() I think I like this the best, it avoids the conversion from tuple back to list, and I suspect that converting a list to a tuple - which should involve just copying references to the list contents - is quicker than converting it to a string. Kent _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
