On May 20, 8:58 am, Paul McGuire <[EMAIL PROTECTED]> wrote: > On May 20, 10:50 am, [EMAIL PROTECTED] wrote: > > > > > You don't need all those conditionals. A set differs from a list > > precisely in the fact that each element is unique. And since the > > function is expecting "s" to be an iterable object, it can be > > constructed even without a for loop: > > > def compress(s): > > return list(set(s)) > > > That does the trick. > > Only if order does not need to be maintained. list(set(s)) will not > necessarily keep the unique characters in the order they are seen. > We'll have to check with the OP to see if this is important (I just > assumed that it was because of the use of list comps). > > -- Paul
If order is important, you can use sorted() instead of list() like so: def compress(s): new = sorted(set(s), key=s.index) return return ''.join(new) ~Simon -- http://mail.python.org/mailman/listinfo/python-list