bambam wrote: > Excellent. By symmetry, I see that "list" casts the set back into a list. > > I wonder why list has not been extended with the same (difference, > interesection) methods? Casting to set looks a little kludgy: > > c = list(set(a)-set(b)) > I wonder if that is clearer than the explicit loop?
This isn't a "cast" in the sense of some less-strongly-typed languages; it's just a conversion. The `list` function/type iterates over its argument and turns it into a list. Sets are iterable, so that's all that's really going on here. The reason that lists don't have set-like methods is because lists aren't sets -- lists can contain duplicate elements, whereas sets cannot. You should use the proper type for your needs; if you want to take two lists, remove duplicate elements, and then end up with a list, then the sets-difference-and-then-make-a-list mechanism is appropriate. -- Erik Max Francis && [EMAIL PROTECTED] && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM, Y!M erikmaxfrancis It [freedom] must be demanded by the oppressed. -- Dr. Martin Luther King, Jr. -- http://mail.python.org/mailman/listinfo/python-list