Ben Finney <ben+pyt...@benfinney.id.au>: > The Python list comprehension syntax does not specify control flow.
I understand your point, but how do you know your statement is true? I didn't check this, but I would imagine the list comprehension: [ f(x) for x in I if c(x) ] was defined as syntactic sugar for: list(f(x) for x in I if c(x)) where f(x) for x in I if c(x) has heavily iterative semantics. > List comprehensions, in their syntax, strongly connote a single > declarative operation. This makes them different from iteration > syntax. Except for side effects, you get the same result whichever way you imagine it. As a side not, I have found it rather confusing that I have to say: [ (x, y) for x in range(5) for y in range(x) ] instead of: [ (x, y) for y in range(x) for x in range(5) ] After all, you must say: [ ((x, y) for y in range(x)) for x in range(5) ] which, admittedly, means a different thing. Marko -- https://mail.python.org/mailman/listinfo/python-list