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.

--
Greg
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to