2010-03-24 2 views
5

У меня есть вложенный список, содержащий ~ 30000 суб-листы, каждый из которых имеет три записи, например,Python - вложенный список в таблицу с разделителями?

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

Я хотел бы создать функцию для того, чтобы вывести эти данные построить в табуляцией формате, например,

x y z 
a b c 

Любая помощь очень ценится!

Заранее спасибо, Seafoid.

+2

Что у вас до сих пор? Любая попытка кода частично работает? –

ответ

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

Просто любопытно было бы сохранить подсписки в виде 3-х кортежей вместо списков? эффективность? –

+0

@ TheMachineCharmer: Не стесняйтесь использовать 'timeit', чтобы узнать, каково фактическое воздействие на самом деле. http://docs.python.org/library/timeit.html –

+0

@ TheMachineCharmer: обратите внимание, что настоящий код, вероятно, не имеет списков, жестко закодированных таким образом, но читает их из файла или получает из другого источника –

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

На мой взгляд, это просто один лайнер:

print '\n'.join(['\t'.join(l) for l in nested_list]) 
Смежные вопросы