2012-12-16 24 views
0

我有一個名爲sorted_lists寫作列表文件只有10倍,蟒蛇

我用這把它們寫到一個txt文件列表的列表。現在的事情是,下面的這一行打印所有列表。我試圖弄清楚如何僅打印前n(n =任意數字),例如前10個列表。

f.write ("\n".join("\t".join (row) for row in sorted_lists)+"\n") 

回答

1

f.write ('\n'.join('\t'.join(row) for row in sorted_lists[:n+1])+'\n')

其中n是列表的數目。

2

嘗試以下操作:

f.write ("\n".join("\t".join (row) for row in sorted_lists[0:N])+"\n")

其中N是要打印的第一N列表的數量。

sorted_lists[0:N]將趕上第一N列表(從0計數到N-1中,存在N清單; list[N]除外)。您也可以編寫sorted_lists[:N]這隱含地意味着它將從列表的第一項(項目0)開始。他們是一樣的,後者可能被認爲更優雅。

0

您應該閱讀python slicing features

如果你只想看看sorted_lists的前10位,你可以做sorted_lists[0:10]

1

爲什麼不簡化此代碼,並使用正確的工具:

from itertools import islice 
import csv 

first10 = islice(sorted_lists, 10) 
with open('output.tab', 'wb') as fout: 
    tabout = csv.writer(fout, delimiter='\t') 
    tabout.writerows(first10)