[PIPython] stampare su file
Ernesto
e.picardi
Ven 19 Nov 2004 15:16:45 CET
> On Wednesday 12 May 2004 15:38, Ernesto wrote:
>
> > o=open("output.txt","w")
> > for j in xrange(len(results[0])): #len(results[0])=4950
> > for i in rank_position(results): #rank_position(results) è
una
> > funzione che restituisce ina lista di 100 elementi
> > o.write(str(i[j])+"\t")
> > o.write("\n")
> > o.close()
> >
> > Il tempo di esecuzione dello script incrementa quando attivo questa
parte
>
> IMHO questo codice di per sè non giustifica 40 minuti di esecuzione, a
meno
> che il pc stia scrivendo il file con lo scalpello, in cuneiforme su una
> tavoletta d'argilla ;)
> Sul mio PC con una rank_position trasparente (restituisce results) ci
mette
> 2.7 secondi.
> Io controllerei attentamente cosa combina rank_position, magari usando
> l'ottimo modulo profiler che sta nella libreria standard.
>
> --
> http://thisurlenablesemailtogetthroughoverzealousspamfilters.org
Ho trovato l'errore, che in effetti risiedeva nella funzione
rank_position(results), che effettua delle iterazioni su un'altra lista
generata a sua volta da una funzione indipendente. Quando richiamavo i
valori di quest'ultima lista, usavo il comando:
se function() è la funzione che restituisce l'ultima lista
l=[]
for i in range(len(lista)):
l.append(function()[i]) #riga incriminata
Il codice non è esattamente questo ma rende l'idea.
Aggiungendo la riga
l=[]
new_lista=function() #riga aggiunta
for i in range(len(lista)):
l.append(new_lista[i]) #riga modificata
i tempi di esecuzione si riducono drasticamente e lo script impiega circa 30
sec per far tutto!
Penso che l'errore sia questo!
Grazie per i suggerimenti
ernesto.
Non vorrei creare confusione in chi legge, ma vorrei domandarvi se e come è
possibile effettuare il tree traversing in Python e come e se è possibile
usare qualcosa simile ai pointers e records del linguaggio C
grazie ancora
ernesto
More information about the Python
mailing list