<div>f1 = lambda n1, n2 : n1 &gt; 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">&lt;<a href="mailto:turturici.valerio@gmail.com">turturici.valerio@gmail.com</a>&gt;</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">&gt; Ma nel caso in cui avessi una quantità enorme di elementi, ci<br>
&gt; sarebbero problemi di prestazioni...<br>
&gt;<br>
</div>La funzione la puoi scrivere cosi<br>
<div class="im"><br>
def F1(n1 = 0, n2 = 0):<br>
</div>     return n1 &gt; 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 &gt; 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>