[Python] media di un generatore

Piergiuliano Bossi pgbossi a gmail.com
Mer 11 Dic 2013 05:20:10 CET


2013/12/10 Piergiuliano Bossi <pgbossi a gmail.com>

> In un mondo ideale vorrei poter scrivere qualcosa come questo:
> >>> sum(v for n, v in enumerate(gen, 1))/n
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> NameError: name 'n' is not defined
>
> Oppure sarebbe bello se potessi iniettare un n che funge da lvalue in quel
> ciclo di sopra e che magicamente alla fine vale quanto l'ultimo indice di
> enumerate.
>
>
Pensiero malvagio:
- con enumerate genero una serie di coppie (v, n)
- le zippo e quindi ottengo 2 sequenze (v1, v2, ...) e (1, 2, ...) =>
assumo di poter zippare le generator expression, oppure gia' qui sto
sbagliando?
- calcolo le somme di entrambe
- sfrutto il fatto che sum(1, 2, ...) altri non e' che n * (n + 1) / 2, per
cui divido sum(v1, v2, ...) per la soluzione positiva di n^2 + n - 2 *
sum(1, 2, ...) = 0, cioe' 1/2 * (sqrt(8 * sum(1, 2, ..) + 1) - 1)


Potrebbe funzionare, ma e' talmente assurdo che manco ci provo a vedere se
sto toppando qualcosa. :)

A questo punto vado a dormire.
Ciao,
Giuliano



-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131210/9328c8ef/attachment.html>


Maggiori informazioni sulla lista Python