On Thu, Oct 13, 2016 at 6:55 PM, Steven D'Aprano <st...@pearwood.info> wrote:
> On Thu, Oct 13, 2016 at 04:34:49PM +0200, Martti Kühne wrote:
>> > If I had seen a list comprehension with an unpacked loop variable:
>> > [t for t in [(1, 'a'), (2, 'b'), (3, 'c')]]
> Martti, somehow you have lost the leading * when quoting me. What I
> actually wrote was:
> [*t for t in [(1, 'a'), (2, 'b'), (3, 'c')]]
Sorry for misquoting you. Can I fix my name, though?
Also, this mail was too long in my outbox so the context was lost on it.
I reiterate it, risking that I would annoy some, but to be absolutely clear.
>> As it happens, python does have an external consumption operation that
>> happens externally with an iteration implied:
> If you replace the t with *t, you get a syntax error:
I meant that statement in context of the examples which were brought up:
the occurrence of a list comprehension inside an array have the
1) [ ..., [expr for t in iterable] ]
is equivalent to:
def expr_long(iterable, result):
expr_long(iterable, [ ..., ])
so, if you make the case for pep448, you might arrive at the following:
2) [ ..., *[expr for expr in iterable] ]
which would be, if I'm typing it correctly, equivalent to, what
resembles an external collection:
def expr_star(list_comp, result):
expr_star(iterable, [ ..., ])
Having this in mind, the step to making:
[ ..., [*expr for expr in iterable], ]
def expr_insidestar(iterable, result):
for expr in iterable:
does not appear particularly far-fetched, at least not to me and a few
people on this list.
Python-ideas mailing list
Code of Conduct: http://python.org/psf/codeofconduct/