我正在尝试以函数return返回数字数据:
[1,2,3,4,5][10,11]
[6,7,8,9,10][13,14]
...
问题是我希望文本文件的格式为:
1,2,3,4,5[::tab::]10,11
6,7,8,9,10[::tab::]13,14
...
目前我正在使用
with open(outfilename,'a') as outfile:
outfile.writelines("%s%s\n"%(major,minor))
我会感谢您的帮助。我仍然对列表,读取和写入文本文件以及实现特定的数据格式完全感到困惑。我总是以不受欢迎的[]或括号结束。
答案 0 :(得分:1)
您可以使用列表中的元素编写字符串,使用,
或您想要的分隔符连接每个元素;然后,在它们之间使用\t
打印列表。
with open(outfilename, 'at') as outfile:
major = ",".join(str(i) for i in major)
minor = ",".join(str(i) for i in minor)
outfile.writelines("%s\t%s\n" % (major, minor))
以下行后面的 magic 非常简单,实际上是:
major = ",".join(str(i) for i in major)
Python提供了一个名为list comprehension的功能,它允许您使用非常清晰明了的语法对列表元素执行操作。
例如,如果您有一个列表l = [1, 2, 3, 4, 5]
,则可以在列表上运行,将元素从整数转换为字符串,调用方法str()
:
do _something_ with _element_ foreach _element_ in list _l_
str(element) for element in l
执行此操作时,将一次创建每个结果字符串,并且您在此语句中有一个生成器:
(str(element) for element in l)
由于方法join
通过迭代元素列表或从生成器接收此元素来工作,您可以:
delimiter = ","
delimiter.join(str(element) for element in l)
希望它澄清上述操作。