将列表写入文件仅 10 次,python



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

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

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

尝试以下操作:

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 项)开始。它们是相同的,后者可能被认为更优雅。

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

其中n是列表的数量。

为什么不简化这段代码并使用正确的工具:

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)

您应该阅读python切片功能。

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

最新更新