[Python-ideas] Generators are iterators
Terry Reedy
tjreedy at udel.edu
Fri Dec 12 23:54:01 CET 2014
On 12/12/2014 4:10 PM, Oscar Benjamin wrote:
> The function was just supposed to generate the effect. More plausible
> examples can be made. I tripped over this myself once when doing
> something with iterators that required me to extract the first item
> before processing the rest. A simple demonstration:
>
> def sum(iterable):
> iterator = iter(iterable)
> total = next(iterator)
> for item in iterator:
> total += item
> return total
Examples like this has been posted on python-list, probably more than
once. The answer has been to catch StopIteration (which should only come
from next/__next__) and either return a default value or raise
ValueError('cannot sum an empty iterable').
> results = list(map(sum, data_sources))
--
Terry Jan Reedy
More information about the Python-ideas
mailing list