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