2010-03-24 29 views
5

Tengo una lista anidada ~ 30.000 sublistas, cada una con tres entradas, por ejemplo,Python: lista anidada al archivo delimitado por tabulaciones?

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

Deseo crear una función para emitir estos datos constructo en un formato delimitado por tabuladores, por ejemplo,

x y z 
a b c 

Cualquier ayuda muy apreciada!

Gracias de antemano, Seafoid.

+2

¿Qué tienes hasta ahora? ¿Algún intento de código que funciona parcialmente? –

Respuesta

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

Simplemente curioso, ¿sería útil almacenar sublistas como 3-tuplas en lugar de listas? ¿En cuanto al rendimiento? –

+0

@TheMachineCharmer: Siéntase libre de usar 'timeit' para ver cuál es realmente el impacto real. http://docs.python.org/library/timeit.html –

+0

@TheMachineCharmer: tenga en cuenta que el código real probablemente no tiene las listas codificadas de esta manera, pero las lee de un archivo o las obtiene de otra fuente –

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

En mi opinión, es un sencillo de una sola línea:

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