将列表项写入Python中的文本文件

时间:2013-03-04 13:57:14

标签: python list output

我有一个 - 可能 - 微不足道的问题,一直困扰我一段时间,我仍然没有找到答案。我的许多脚本读取一些文件,比较它们的值并将它们保存在列表或字典中,然后我从中编写某种类型的输出文件。我一直在做的是,我遍历列表并将单个项目写入我的输出,由制表符,逗号或换行符分隔。我一直想知道的是,如何防止在列表中的最后一项打印后出现分隔符。

以下是一个例子:

dict1 = {a: [1,2,3], b: [4,5,6], c: [7,8,9]}
for key in dict1:
    outfile.write(key +": ")
    for item in dict1[key]:
        outfile.write(str(item) +", ")
    outfile.write("\n")

输出将如下所示:

a: 1, 2, 3, 
b: 4, 5, 6, 
c: 7, 8, 9, 

我如何避免最后一次“,”?

2 个答案:

答案 0 :(得分:3)

使用str.join方法和列表理解:

for key, value in dict1.iteritems():
    outfile.write(key +": ")
    outfile.write(', '.join([str(item) for item in value]))
    outfile.write("\n")

答案 1 :(得分:1)

使用标准库CSV模块怎么样?

它将处理该问题,以及任何必要的转义(如果您的某个值包含逗号,该怎么办?)

(当然,作为一般情况,使用string.join(list)正确加入而不使用尾随分隔符)