2013/12/10 Piergiuliano Bossi <pgbo...@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
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python