On Sat, Oct 15, 2016 at 8:45 PM Chris Angelico <[email protected]> wrote:
> On Sun, Oct 16, 2016 at 4:38 AM, אלעזר <[email protected]> wrote: > > On Sat, Oct 15, 2016 at 8:36 PM Chris Angelico <[email protected]> wrote: > >> > >> On Sun, Oct 16, 2016 at 4:33 AM, אלעזר <[email protected]> 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
_______________________________________________ Python-ideas mailing list [email protected] https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
