Misuse of list comprehensions?
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Wed May 21 07:36:37 EDT 2008
Simon Forman a écrit :
> On May 20, 8:58 am, Paul McGuire <pt... at austin.rr.com> wrote:
>> On May 20, 10:50 am, s0s... at gmail.com 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.
More information about the Python-list
mailing list