2010-03-24 7 views
5

Ho un elenco nidificata comprendente ~ 30.000 sottoelenchi, ciascuno con tre voci, ad esempio,Python - Elenco nidificato su file delimitato da tabulazione?

nested_list = [['x', 'y', 'z'], ['a', 'b', 'c']]. 

desidero creare una funzione per emettere questi dati costrutto in un formato scheda delimitato, ad esempio,

x y z 
a b c 

Qualsiasi aiuto molto apprezzato!

Grazie in anticipo, Seafoid.

+2

Che cosa avete fino ad ora? Qualsiasi tentativo di codice che funziona parzialmente? –

risposta

5
with open('fname', 'w') as file: 
    file.writelines('\t'.join(i) + '\n' for i in nested_list) 
6
>>> nested_list = [['x', 'y', 'z'], ['a', 'b', 'c']] 
>>> for line in nested_list: 
... print '\t'.join(line) 
... 
x y z 
a b c 
>>> 
+0

Solo curioso sarebbe aiutare a memorizzare sottoliste come 3-tuple invece di liste? prestazioni saggio? –

+0

@TheMachineCharmer: Sentiti libero di usare 'timeit' per vedere quale sia l'impatto reale. http://docs.python.org/library/timeit.html –

+0

@TheMachineCharmer: nota che il codice reale probabilmente non ha gli elenchi codificati in questo modo, ma li legge da un file o li preleva da un'altra fonte –

2
>>> print '\n'.join(map('\t'.join,nested_list)) 
x  y  z 
a  b  c 
>>> 
1
out = file("yourfile", "w") 
for line in nested_list: 
    print >> out, "\t".join(line) 
4

A mio avviso, si tratta di un semplice one-liner:

print '\n'.join(['\t'.join(l) for l in nested_list])