On May 20, 3:58 pm, Paul McGuire <[EMAIL PROTECTED]> wrote: > On May 20, 8:13 am, "John Salerno" <[EMAIL PROTECTED]> wrote: > > > > > I posted this code last night in response to another thread, and after I > > posted it I got to wondering if I had misused the list comprehension. Here's > > the two examples: > > > Example 1: > > -------------------- > > def compress(s): > > new = [] > > > for c in s: > > if c not in new: > > new.append(c) > > return ''.join(new) > > ---------------------- > > > Example 2: > > ------------------------ > > def compress(s): > > new = [] > > [new.append(c) for c in s if c not in new] > > return ''.join(new) > > -------------------------- > > > In example 1, the intention to make an in-place change is explicit, and it's > > being used as everyone expects it to be used. In example 2, however, I began > > to think this might be an abuse of list comprehensions, because I'm not > > assigning the result to anything (nor am I even using the result in any > > way). > > > What does everyone think about this? Should list comprehensions be used this > > way, or should they only be used to actually create a new list that will > > then be assigned to a variable/returned/etc.? > > Why not make the list comp the actual list you are trying to build?
... Because it obscures the intent of the code. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list