Rubinho wrote: > I've a list with duplicate members and I need to make each entry > unique. > > I've come up with two ways of doing it and I'd like some input on what > would be considered more pythonic (or at least best practice). > > Method 1 (the traditional approach) > > for x in mylist: > if mylist.count(x) > 1: > mylist.remove(x)
That would be an odd tradition: >>> mylist = [1, 2, 1, 3, 2, 3] >>> for x in mylist: ... if mylist.count(x) > 1: ... mylist.remove(x) ... >>> mylist [2, 1, 2, 3] # oops! See "Unexpected Behavior Iterating over a Mutating Object" http://mail.python.org/pipermail/python-list/2005-September/298993.html thread for the most recent explanation. Rather, the traditional approach for an algorithmic problem in Python is to ask Tim Peters, see his recipe at http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52560/ (which predates Python's set class). Peter -- http://mail.python.org/mailman/listinfo/python-list