[Python-ideas] Fwd: Fwd: unpacking generalisations for list comprehension

אלעזר elazarg at gmail.com
Sat Oct 15 13:48:44 EDT 2016


On Sat, Oct 15, 2016 at 8:45 PM Chris Angelico <rosuav at gmail.com> wrote:

> On Sun, Oct 16, 2016 at 4:38 AM, אלעזר <elazarg at gmail.com> wrote:
> > On Sat, Oct 15, 2016 at 8:36 PM Chris Angelico <rosuav at gmail.com> wrote:
> >>
> >> On Sun, Oct 16, 2016 at 4:33 AM, אלעזר <elazarg at gmail.com> wrote:
> >> > You are confusing here two distinct roles of the parenthesis:
> >> > disambiguation
> >> > as in "(1 + 2) * 2", and tuple construction as in (1, 2, 3). This
> >> > overload
> >> > is the reason that (1) is not a 1-tuple and we must write (1,).
> >>
> >> Parentheses do not a tuple make. Commas do.
> >>
> >> 1, 2, 3, # three-element tuple
> >> 1, 2, # two-element tuple
> >> 1, # one-element tuple
> >>
> > And what [1, 2, 3] means? It's very different from [(1,2,3)].
> >
> > Python explicitly allow 1, 2, 3 to mean tuple in certain contexts, I
> agree.
> >
>
> Square brackets create a list. I'm not sure what you're not understanding,
> here.
>
> The comma does have other meanings in other contexts (list/dict/set
> display, function parameters), but outside of those, it means "create
> tuple".
>

On a second thought you may decide whether the rule is tuple and there are
exceptions, or the other way around.

The point was, conceptual expansion does not "fail" just because there is
an overloading in the meaning of the tokens ( and ). It might make it
harder to understand, though.

Elazar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20161015/a4dbaa5f/attachment.html>


More information about the Python-ideas mailing list