On Mon, 26 Jan 2015 01:21:24 +0100, Antoine Pitrou <solip...@pitrou.net> wrote: > On Sun, 25 Jan 2015 14:59:42 -0800 > Guido van Rossum <gu...@python.org> wrote: > > On Sun, Jan 25, 2015 at 7:32 AM, Georg Brandl <g.bra...@gmx.net> wrote: > > > > > On 01/25/2015 04:08 PM, Antoine Pitrou wrote: > > > > On Sat, 24 Jan 2015 21:10:51 -0500 > > > > Neil Girdhar <mistersh...@gmail.com> wrote: > > > >> To finish PEP 448, I need to update the grammar for syntax such as > > > >> > > > >> {**x for x in it} > > > > > > > > Is this seriously allowed by the PEP? What does it mean exactly? > > > > > > It appears to go a bit far. Especially since you also would have to allow > > > > > > {*x for x in it} > > > > > > which is a set comprehension, while the other is a dict comprehension :) > > > > > > > That distinction doesn't bother me -- you might as well claim it's > > confusing that f(*x) passes positional args from x while f(**x) passes > > keyword args. > > > > And the varargs set comprehension is similar to the varargs list > > comprehension: > > > > [*x for x in it] > > > > If `it` were a list of three items, this would be the same as > > > > [*it[0], *it[1], *it[2]] > > I find all this unreadable and difficult to understand.
I did too, before reading the PEP. After reading the PEP, it makes perfect sense to me. Nor is the PEP complicated...it's just a matter of wrapping your head around the generalization[*] of what are currently special cases that is going on here. --David [*] The *further* generalization...we've already had, for example, the generalization that allows: a, *b = (1, 3, 4) to work, and that seems very clear to us....now. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com