[Python] media di un generatore

Simone Federici s.federici a gmail.com
Mer 11 Dic 2013 22:25:05 CET


class Counter(object):
    __slots__ = ('gen', '_counter')

    def __init__(self, gen):
        self.gen = gen

    def count(self):
        return self._counter

    def __iter__(self):
        c = 0
        for k in self.gen:
            c += 1
            yield(k)
        self._counter = float(c)

def avg7():
    x=Counter(gen(10000))
    return sum(x)/x.count()


avg1 2.8361890316 50000.0
avg2 2.62487697601 50000.0
avg3 4.14600801468 50000.0
avg4 2.05153393745 50000.0
avg5 3.35745310783 50000
avg6 1.26089906693 50000
avg7 2.20352196693 50000.0


meglio rispetto alla avg5 è 1/3 in meno.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131211/c8505627/attachment.html>


Maggiori informazioni sulla lista Python