Steven D'Aprano wrote:
What I don't believe is:
(1) that the majority of Python programmers (or even a large minority)
regularly and consistently think of comprehensions as syntactic sugar
for a completely unrolled list display; rather, I expect that they
usually think of them as sugar for a for-loop;
You don't have to believe that, because thinking about it
as a for-loop works equally well. Without the star, it means
"insert each of these things into a list". With the star,
it means "unpack each of these things into a list".
In a list comprehension, we expect the invariant that the number of
items produced will equal the number of loops performed.
There's a corresponding invariant for list displays: the
number of items produced is equal to the number of expressions
in the display. But that doesn't hold when the display includes
unpacking, for obvious reasons. For the same reasons, we
shouldn't expect it to hold for comprehensions with unpacking.
Python-ideas mailing list
Code of Conduct: http://python.org/psf/codeofconduct/