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

Steven D'Aprano steve at pearwood.info
Sat Oct 15 21:10:01 EDT 2016


On Sun, Oct 16, 2016 at 04:36:05AM +1100, Chris Angelico 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
> 
> The only time that a tuple requires parens is when it's the empty tuple, ().

Or to disambiguate a tuple from some other comma-separated syntax. Hence 
why you need the parens here:

    [(b, a) for a,b in sequence]




-- 
Steve


More information about the Python-ideas mailing list