0

我有一个名为的列表列表sorted_lists

我正在使用它来将它们写入 txt 文件。现在的问题是,下面的这一行打印了所有列表。我试图弄清楚如何只打印前 n 个(n = 任意数字),例如前 10 个列表。

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

4 回答 4

2

尝试以下操作:

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

其中NN您要打印的第一个列表的数量。

sorted_lists[0:N]将捕获第一个N列表(从 0 到 N-1 计数,有 N 个列表;list[N]不包括在内)。你也可以写sorted_lists[:N]which 隐含地意味着它将从列表的第一项(项目 0)开始。它们是相同的,后者可能被认为更优雅。

于 2012-12-16T23:50:02.140 回答
1

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

其中n是列表的数量。

于 2012-12-16T23:49:02.107 回答
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)
于 2012-12-16T23:53:15.087 回答
0

您应该阅读python 切片功能

如果您只想查看前 10 个整体sorted_lists,您可以这样做sorted_lists[0:10]

于 2012-12-16T23:51:44.697 回答