On Sun, Mar 4, 2018 at 11:04 PM, Chris Angelico <ros...@gmail.com> wrote:
> On Mon, Mar 5, 2018 at 2:49 PM, Mike Miller <python-id...@mgmiller.net> > wrote: > > Yes, thanks: > > > > [ f(y), g(y) for x, h(x) as y in things ] > > > > > > Dyslexics untie! > > :) > > Hmm. The trouble here is that a 'for' loop is basically doing > assignment. When you say "for x, h(x) as y in things", what Python > does is (simplified): > > _it = iter(things) > while not StopIteration: > x, (h(x) as y) = next(_it) > ... loop body ... > > So what you're asking for is something that doesn't behave like an > assignment target, but just does its own assignment. Bear in mind, > too, that "x = next(_it)" is very different from "x, = next(_it)"; > which one is "x, (h(x) as y) = next(_it)" more like? > > If I understood Mike's proposal correctly it was to allow "," to mean 'given' in this context when followed by EXPRESSION "as" VARIABLE, rather than its usual iterable-unpacking meaning. But I think this would cause confusion. Suppose `things` contains pair-tuples. Then you could have [ f(y), g(y) for x1, x2, h(x1) as y in things ] which makes it look like (x1, x2, h(x1)) go together rather than just (x1, x2). Nathan
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/