2010/3/10 Nicola Ferrari nick.fe...@gmail.com:
Per numeri piccoli, direi che una soluzione simile a questa, sarebbe ok..
for val in range(100):
for n2 in li:
if F1(val, n2): print val
ma se avessi una li di 200 elementi, risulterebbe pesante...
sai spiegare questa tua
Nicola Ferrari ha scritto:
Ma nel caso in cui avessi una quantità enorme di elementi, ci
sarebbero problemi di prestazioni...
La funzione la puoi scrivere cosi
def F1(n1 = 0, n2 = 0):
return n1 n2
Comunque con questo codice il mio portatile impiega meno di 25s
(compreso anche il
Simone Federici ha scritto:
f1 = lambda n1, n2 : n1 n2
for val in range(100):
for val2 in range(100):
if f1(val, val2):
print val
else:
break
chiaro che cosi dai assunto che conosci il punto di uscita di f1
Si poteva anche scrivere cosi,
l'ottimizzazione del punto d'uscita è il break
2010/3/10 Valerio Turturici turturici.vale...@gmail.com
Simone Federici ha scritto:
f1 = lambda n1, n2 : n1 n2
for val in range(100):
for val2 in range(100):
if f1(val, val2):
print val
else:
2010/3/10 Nicola Ferrari nick.fe...@gmail.com:
ma se avessi una li di 200 elementi, risulterebbe pesante...
Qualche idea per migliorare il tutto?
Penso sia la stessa domanda proposta qui:
-
http://stackoverflow.com/questions/2355542/ugly-combination-of-generator-expression-with-for-loop
Se
On 03/10/2010 02:20 PM, Giovanni Marco Dall'Olio wrote:
- itertools.product dovrebbe darti il prodotto cartesiano, ma mi
sembra che non vi sia almeno in python2.5, e per il momento non te lo
posso provare (sono su una vecchia ubuntu).
Lo uso tranquillamente sulla 2.5, sono poche righe:
Simone Federici ha scritto:
l'ottimizzazione del punto d'uscita è il break
Si infatti. Magari mi sbaglio, ma per quello che ha detto gli
interessa solo quando la funzione restituisce True, quindi il break ci
sta tutto.
___
Python mailing list
Grazie a tutti per le risposte..
Ora ho qualcosa di nuovo su cui studiare :)
La funzione, scritta come funzione lambda , migliora le prestazioni?
In questo caso, come mai è meglio usarla?
Il giorno 10 marzo 2010 14.49, Valerio Turturici
turturici.vale...@gmail.com ha scritto:
Simone Federici
Si in effetti la piega del tread sta vertendo su cose molto interessanti,
che mostrano la potenza del linguaggio.
Ma prima delle features, c'è da utilizzare un pensiero ingegneristico.
cmq la funzione lambda è solo questione di stile. alcuni dicono sia più
leggibile. quanto a performance è
Nicola Ferrari ha scritto:
Grazie a tutti per le risposte..
Ora ho qualcosa di nuovo su cui studiare :)
E' identica alla def, solo che la puoi usare in posti dove la def non è
consentita, ad esempio nelle espressioni.
___
Python mailing list
10 matches
Mail list logo