On 12/23/2014 4:25 PM, Ben Finney wrote:
Ian Kelly <ian.g.ke...@gmail.com> writes:

On Tue, Dec 23, 2014 at 11:55 AM, Seb <splu...@gmail.com> wrote:
Particulary, what do the parentheses do there?

The parentheses enclose a generator expression, which is similar to a
list comprehension [1] but produce a generator, which is a type of
iterator, rather than a list.

To be clear: there's nothing about parentheses that produce a generator
expression.

Incorrect; parentheses *are* as a part of 'generator expression'. From the doc:
generator_expression ::=  "(" expression comp_for ")"

The generator expression is produced by the syntax used, such as
‘frob(spam) for spam in collection_of_spam if spam > 0’.

This is (intentionally) not a generator expression.

a = i for i in range(39)

is a syntax error, whereas

t = a, 3, '3'

binds 't' to the tuple a, 3, '3'.

The parentheses that are part of a generator expression may only be omitted in a call with one argument. See my other response.

--
Terry Jan Reedy


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to