[PIPython] ancora colonne!

Nicola Paolucci nick
Ven 19 Nov 2004 15:16:43 CET


ciao,

> Ho provato sia lo script di Nick che quello di Simone ed ho notato che in
> quello di Simone qualcosa non va bene, in quanto stampa i dati su file ma
> non
> in colonne.
> A dire la verita' non e' che abbia capito tanto lo script di Nick e
> specialmente l'istruzione data al loop. Mi piacerebbe capirla, anche
> perche' ho un numero variabile di colonne.

l = [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
trasposta = apply(zip,l)
print trasposta
[('1', '4', '7'), ('2', '5', '8'), ('3', '6', '9')]

L'idioma apply(zip,x) e' una delle maniere piu' semplici per generare una
matrice trasposta (scambiare righe per colonne di una matrice).

Dopo diche' puoi semplicemente iterare sulla lista delle tue nuove righe,
che sono gia' pronte da stampare come piace a te.

for riga in trasposta:
    #scrivisu file


Il frammento '\t'.join(line) + '\n' nel loop for crea una riga con i dati
separati da tab e conclude tutto con un acapo.

Rileggendo quello che ti serve nota che zip taglia le parti di matrice che
non sono simmetriche. Se mi viene in mente una maniera elegante di
risolvere  te la scrivo.

ciao,
    Nick






More information about the Python mailing list