Simon Forman a écrit :
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)

This won't still preserve the *original* order.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to