[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