<div>f1 = lambda n1, n2 : n1 > n2</div><div><br></div><div>for val in range(100):</div><div> for val2 in range(1000000):</div><div> if f1(val, val2):</div><div> print val</div><div> else:</div>
<div> break</div><div><br></div>chiaro che cosi dai assunto che conosci il punto di uscita di f1<br><br>
<br><br><div class="gmail_quote">2010/3/10 Valerio Turturici <span dir="ltr"><<a href="mailto:turturici.valerio@gmail.com">turturici.valerio@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Nicola Ferrari ha scritto:<br>
<div class="im">> Ma nel caso in cui avessi una quantità enorme di elementi, ci<br>
> sarebbero problemi di prestazioni...<br>
><br>
</div>La funzione la puoi scrivere cosi<br>
<div class="im"><br>
def F1(n1 = 0, n2 = 0):<br>
</div> return n1 > n2<br>
<br>
<br>
Comunque con questo codice il mio portatile impiega meno di 25s<br>
(compreso anche il tempo della creazione della lista, che in ogni caso è<br>
irrisorio):<br>
<br>
l = [x for x in range(1000000)]<br>
<div class="im"><br>
def F1(n1 = 0, n2 = 0):<br>
</div> return n1 > n2<br>
<div class="im"><br>
for val in range(100):<br>
</div> for val2 in l:<br>
if F1(val, val2): print val<br>
<br>
<br>
Cosi sul momento non mi viene in mente nulla per poterlo ottimizzare<br>
pesantemente, visto che devi abbinare ad ogni elemento di range tutti<br>
quelli della lista, e quindi fare x*n iterazioni. Ora vado a mettermi<br>
davanti al termosifone, ho le mani congelate :D<br>
<br>
Ciao<br>
<font color="#888888">Valerio<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
</div></div></blockquote></div><br>