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.? -- http://mail.python.org/mailman/listinfo/python-list