<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/12/10 Marco Chieppa | crap0101 <span dir="ltr"><<a href="mailto:crap0101@riseup.net" target="_blank">crap0101@riseup.net</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Il giorno Tue, 10 Dec 2013 18:58:48 -0500<br>
Piergiuliano Bossi <<a href="mailto:pgbossi@gmail.com">pgbossi@gmail.com</a>> ha scritto:<br>
<div class="im"><br>
> On Tuesday, December 10, 2013, Marco Beri wrote:<br>
</div>> [...]<br>
<div class="im">> ><br>
> > def avg(gen):<br>
> >     n, sum_ = 0, 0.0<br>
> >     for v in gen:<br>
> >         sum_ += v<br>
> >         n += 1<br>
> >     return sum_ / n<br>
> ><br>
> > Cos'ha questo di brutto? Tra l'altro funziona anche con le liste e le<br>
> > tuple..<br>
> ><br>
> ><br>
> ><br>
> Nulla, ma è il modo più idiomatico di farlo? Fate tutti così? Dai<br>
> confessa... :)<br>
><br>
<br>
</div>non molto diverso in realtà... ma potresti usare enumerate:<br>
<br>
def avg(seq):<br>
    tot = 0.0<br>
    for n, v in enumerate(seq, 1):<br>
        tot += v<br>
    try:<br>
        return tot / n<br>
    except UnboundLocalError:<br>
        return 0 # ???<br>
<br></blockquote><div><br></div><div>Si', non male.</div><div>Penso che quello che mi spiazza di piu' e' il non utilizzo idiomatico di sum nelle soluzioni che mi fate vedere.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

capisco che il try/except finale non è molto bello, ma forse lo dovrai/vorrai<br>
utilizzare anche con altri metodi, nel caso in cui passi una sequenza che non<br>
contiene alcun elemento (ad esempio nell'altro codice sopra avresti un<br>
ZeroDivisionError).<br>
<br></blockquote><div><br></div><div>Nel mio caso sono sicuro di avere sempre svariate migliaia di elementi nella sequenza, ma capisco cosa intendi e hai ragione.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Non ho capito bene quando parli di<br>
<div class="im"><br>
> la creazione di 2 iteratori in itertools.izip(*generator)<br>
<br>
</div>non mi pare faccia quello che ti serve, forse intendevi itertools.tee ?<br></blockquote><div><br></div><div>Si', itertools.tee fa quello che volevo meglio di come mi sono messo a usare itertools.izip :)</div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Quest'ultimo potrebbe essere una soluzione però non credo valga la pena di<br>
creare dei doppioni (soprattutto con sequenze lunghe) quando puoi fare con un<br>
unico for...<br></blockquote><div><br></div><div>Concordo, ed era il senso del mio secondo messaggio.</div><div><br></div><div>Sono un po' stupito che nessuno di voi mi dica di caricare in una lista...</div><div><br>
</div><div>Grazie</div><div>Giuliano</div></div><div><br></div>-- <br>Piergiuliano Bossi<br>Blog: <a href="http://thinkingbox.wordpress.com/" target="_blank">http://thinkingbox.wordpress.com/</a><br>Twitter: <a href="http://twitter.com/thinkingbox" target="_blank">http://twitter.com/thinkingbox</a> (English)<br>
Twitter: <a href="http://twitter.com/scatolapensante" target="_blank">http://twitter.com/scatolapensante</a> (Italiano)<br><div>Google+: <a href="https://plus.google.com/u/0/108187981162465525118" target="_blank">https://plus.google.com/u/0/108187981162465525118</a></div>

</div></div>