将列表导出为.txt(Python)

将列表导出为.txt(Python),python,list,csv,export,tuples,Python,List,Csv,Export,Tuples,我的Python模块有一个列表,其中包含我想保存为.txt文件的所有数据。该列表包含几个元组,如下所示: list = [ ('one', 'two', 'three'), ('four', 'five', 'six')] 如何打印列表,使每个元组项由选项卡分隔,每个元组由换行符分隔 谢谢你试试这个 "\n".join(map("\t".join,l)) 试验 IMHO是最惯用的方法,它使用列表理解和连接: print '\n'.join('\t'.join(i) for i in l)

我的Python模块有一个列表,其中包含我想保存为.txt文件的所有数据。该列表包含几个元组,如下所示:

list = [ ('one', 'two', 'three'), ('four', 'five', 'six')]
如何打印列表,使每个元组项由选项卡分隔,每个元组由换行符分隔

谢谢你试试这个

"\n".join(map("\t".join,l))
试验


IMHO是最惯用的方法,它使用列表理解和连接:

print '\n'.join('\t'.join(i) for i in l)

正如其他答案所建议的,您可以通过连接行来解决这个问题,但更好的方法是只使用PythonCSV模块,这样以后您就可以轻松地更改delimter或添加标头等,并将其读回,看起来您想要的是制表符分隔的文件

import sys
import csv

csv_writer = csv.writer(sys.stdout, delimiter='\t')
rows = [ ('one', 'two', 'three'), ('four', 'five', 'six')]
csv_writer.writerows(rows)
输出:

one two three
four    five    six

您不必提前加入列表:

with open("output.txt", "w") as fp:
    fp.writelines('%s\n' % '\t'.join(items) for items in a_list)

表示“sequence item 0:expected string,tuple found”表示“参数1必须是字符串或只读字符缓冲区,而不是生成器”。感谢您提供了另一种方法,但我太初学了,无法尝试:)但从某种意义上说,它要简单得多,因为您只使用std LIB,但对初学者来说,您还必须知道如何硬操作:)好的解决方案。但是,不要使用“list”作为变量名。-1现在向初学者解释如何在没有StringIO的情况下使用它,这会带来不必要的复杂性,速度慢,并且会输出到文件。5.?@John Machin,我们是在编写初学者教程还是正确的解决方案,编写csv并不像听起来那么简单,最好使用标准库(如果有的话),而StringIO在python中的许多地方都使用,接口采用文件类型对象。我看这里没有列表理解。
map
builds list——没有必要。
import sys
import csv

csv_writer = csv.writer(sys.stdout, delimiter='\t')
rows = [ ('one', 'two', 'three'), ('four', 'five', 'six')]
csv_writer.writerows(rows)
one two three
four    five    six
with open("output.txt", "w") as fp:
    fp.writelines('%s\n' % '\t'.join(items) for items in a_list)