Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #99467
| From | Ian Kelly <ian.g.kelly@gmail.com> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: list slice and generators |
| Date | 2015-11-25 10:44 -0700 |
| Message-ID | <mailman.80.1448473524.20593.python-list@python.org> (permalink) |
| References | <5654D8CE.2020105@gmail.com> <n3418c$k41$1@ger.gmane.org> |
On Wed, Nov 25, 2015 at 3:07 AM, Peter Otten <__peter__@web.de> wrote:
> to get down to one intermediate list. Avoiding the last one is a bit tricky:
>
> metrics = (converter(x.metric(name)) for x in self._server_per_proc)
> metrics = (x for x in metrics if x is not None)
> try:
> # if there is at least one item the generator is not empty
> first = next(metrics)
> except StopIteration:
> metrics = ()
> else:
> # put the first item back in
> metrics = itertools.chain([first], metrics)
> assert metrics
metrics is always going to be an itertools.chain object at this
assert, so how could the assertion ever fail?
>> elif name in METRICS_AVG:
> # writing a function that calculates the average without
> # materialising the list left as an exercise ;)
metrics = itertools.tee(metrics)
return int(sum(metrics[0]) / len(metrics[1]))
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: list slice and generators Ian Kelly <ian.g.kelly@gmail.com> - 2015-11-25 10:44 -0700
csiph-web