I don't know whether you wanted a reply, since you did not ask for one. I am not even sure what your point is. See other comments below.

On 9/8/2017 4:24 PM, Stefan Ram wrote:
   Maybe you all know this, but to me this is something new.
   I learnt it by trial and error in the Python 3.6.0 console.

   Most will know list comprehensions:

|>>> [ i for i in range( 3, 5 )]
|[3, 4]

   I found out that the comprehension can be detached from the list:

|>>> k =( i for i in range( 3, 5 ))

   but one must use an extra pair of parentheses around it in the
   assignment.

   Now I can insert the "generator" »k« into a function call,
   but a spread operator should cannot be used there.

|>>> sum( k )
|7

   »sum« expects exactly two arguments, and this is what »k«
   provides.
Where did you get that idea. If you look at the docs you will see:

"sum(iterable[, start])
Sums start and the items of an iterable from left to right and returns the total. start defaults to 0."

sum expects 1 or 2 arguments; when you write sum(k) you are providing 1 argument.

   But to insert it again into the place where it was "taken
   from", a spread operator is required!

|>>> k =( i for i in range( 3, 5 ))
|>>> [ *k ]
|[3, 4]
"taken from"??
k is a generator object.

Clear?
Bob Gailer
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to