[PIPython] ancora colonne!

ciccio a unical.it ciccio
Ven 19 Nov 2004 15:16:43 CET


La questione e' la seguente. Io ho ad esempio 2 files (ma potrebbero essere n) 
del tipo: 
file 1: 
1	4	7 
2	5	8 
3	6	9 
 
file 2: 
10	13	16 
11	14	17 
12	15	18 
 
Voglio prendere solo la terza colonna ed inserirla in un file di output per 
ottenere qualcosa del tipo: 
outfile: 
7	16 
8	17 
9	18 
 
 
Io ho creato prima un dizionario del tipo: 
{'file1':['7','8','9'],'file2':['16','17','18']} 
e poi con la funzione dizionario.values() ho ottenuto una lista nidificata. 
Di seguito ho utilizzato i tuoi suggerimenti. 
 
Ora mi chiedo, posso riordinare il mio dizionario con qualche funzione simile 
a sort? 
 
grazie 
 
 
 
 
 
Mi scuso cerchero' di stare piu' attento 
 
 
ernesto  
 
 
 
 
 
 
> ciao, 
> Per leggibilita' ti consiglio di inserire la tua risposta sempre al fondo 
> dei messaggi. La pratica del top-post e' generalmente contro la netiquette 
> su newsgroups e mailing lists. Rende difficile seguire il filo di 
> discussioni complesse. 
>  
> >> Ok, 
> >> ho trovato una soluzione passabile al problema delle righe di lunghezza 
> >> variabile: 
> >> 
> >> f = StringIO.StringIO() 
> >> l = [['1','2','3','aa'],['4','5','6'],['7','8','9']] 
> >> #lunghezza massima di una riga 
> >> m = max([len(a) for a in l]) 
> >> #trasforma la matrice in simmetrica 
> >> simmetrizzata = [a+['']*(m -len(a)) for a in l] 
> >> 
> >> #presenta la matrice trasposta riga per riga 
> >> for line in apply(zip,simmetrizzata): 
> >>     f.write('\t'.join(line) + '\n') 
> >> 
> >> Fammi sapere se funziona come ti serve. 
>  
> > Anche questa soluzione va bene. Il mio quesito e' sorto perche' ho un 
> > centinaio di file ciascuno con tre colonne di dati (di lunghezza 
> > variabile) e 
> > voglio prendere solo la terza colonna di ciascun file e spedirla ad un 
> > output, 
> > in altre parole un file che riassuma il tutto, in modo tale che possa 
> > importare tale file riassuntivo su exel per analizzarlo. 
> > Non conoscendo bene python ho provato ad inserire ciascuna colonna in una 
> > lista ed a creare una lista nidificata di colonne! Qui pero' non sapevo 
> > come 
> > stampare ciascun valore sull'output. Non so se ci sono dei metodi 
> > alternativi 
> > piu' rapidi, ma non essendo programmatore ho cercato di far fare al 
> > programma 
> > cio' che mi sembrava logico per il mio scopo. 
>  
> Mi devi scusare ma non ho capito bene la tua spiegazione. Se mi fai un 
> esempio pratico con qualche file, il suo contenuto e cosa vuoi come 
> risultato capisco meglio. 
>  
> > grazie mille per il tuo aiuto. 
>  
> Figurati. 
>  
> > Un'ultima cosa. Dato che i miei file sono nominati in sequenza, del tipo 
> > file0.txt, file1.txt ... filen.txt, quando vado ad aggiungere le colonne 
> > queste sono nell'ordine colonna n...colonna 1, colonna 0. E' possibile 
> > risolvere questo inconveniente? 
>  
> Anche questo pezzo non mi e' molto chiaro. 
> Comunque ogni volta che hai una lista, ordinarla dall'inizio alla fine o 
> dalla fine all'inizio in Python e' banale. In generale, si prepara la 
> lista da ordinare (la si decora), si chiama la funzione .sort(), e si 
> de-decora la lista. Se vuoi l'inverso puoi chiamare .reverse() subito dopo 
> la chiamata a .sort(). 
>  
> ciao, 
>     Nick 
>  
>  
> _______________________________________________ 
> Python mailing list 
> Python a lists.python.it 
> http://lists.zope.it/cgi-bin/mailman/listinfo/python 
>  
 
 

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/




More information about the Python mailing list