On Sat, Oct 15, 2016 at 5:01 AM Steven D'Aprano <st...@pearwood.info> wrote:
> On Thu, Oct 13, 2016 at 01:30:45PM -0700, Neil Girdhar wrote: > > > From a CPython implementation standpoint, we specifically blocked this > code > > path, and it is only a matter of unblocking it if we want to support > this. > > I find that difficult to believe. The suggested change seems like it > should be much bigger than just removing a block. Can you point us to > the relevant code? > > The Grammar specifies: dictorsetmaker: ( ((test ':' test | '**' expr) (comp_for | (',' (test ':' test | '**' expr))* [','])) | ((test | star_expr) (comp_for | (',' (test | star_expr))* [','])) ) In ast.c, you can find: if (is_dict) { ast_error(c, n, "dict unpacking cannot be used in " "dict comprehension"); return NULL; } res = ast_for_dictcomp(c, ch); and ast_for_dictcomp supports dict unpacking. Similarly: if (elt->kind == Starred_kind) { ast_error(c, ch, "iterable unpacking cannot be used in comprehension"); return NULL; } comps = ast_for_comprehension(c, CHILD(n, 1)); and ast_for_comprehensions supports iterable unpacking. In any case, it isn't really the difficulty of implementation that is > being questioned. Many things are easy to implement, but we still > don't do them. If it doesn't matter, why bring it up? > The real questions here are: > > (1) Should we overload list comprehensions as sugar for a flatten() > function? > > (2) If so, should we spell that [*t for t in iterable]? > > > Actually the answer to (1) should be "we already do". We just spell it: > > [x for t in iterable for x in t] > > > > -- > Steve > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "python-ideas" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/python-ideas/ROYNN7a5VAc/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > python-ideas+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/