On Wed, Nov 25, 2015 at 3:07 AM, Peter Otten <__pete...@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])) -- https://mail.python.org/mailman/listinfo/python-list