2010-03-24 3 views
5

J'ai une liste imbriquée comprenant ~ 30.000 sous-listes, chacune avec trois entrées, par exemple,Python - Liste imbriquée dans un fichier délimité par tabulation?

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

Je souhaite créer une fonction pour la sortie de ces données à construire dans un onglet format délimité, par exemple,

x y z 
a b c 

Toute aide grandement appréciée!

Merci d'avance, Seafoid.

+2

Qu'avez-vous à ce jour? Toute tentative de code qui fonctionne partiellement? –

Répondre

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

Juste curieux serait-il utile de stocker des sous-listes en tant que 3-tuples au lieu de listes? performance sage? –

+0

@TheMachineCharmer: N'hésitez pas à utiliser 'timeit' pour voir l'impact réel. http://docs.python.org/library/timeit.html –

+0

@TheMachineCharmer: notez que le code réel n'a probablement pas les listes codées de cette façon, mais les lit à partir d'un fichier ou les obtient d'une autre source –

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

À mon avis, il est un simple-liner:

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