Python - 将一个元组列表写入文件会变换

时间:2014-01-21 16:45:22

标签: python list tuples

我在SO中看到了这些问题的答案,例如herehere。但是,使用他们建议的方法,我在文件中得到的输出看起来部分移位了。

具体来说,我有一个元组列表,由一个数字和一个字符串组成。使用此解决方案,例如:

for t in sorted_words:
      wrds.write(''.join(str(s) for s in t) + ' ')

我在文件中得到的格式如下:

wordone
0.0 wordtwo
0.0 wordthree
0.0 wordfour
0.0 

对此有何解释?谢谢!

2 个答案:

答案 0 :(得分:3)

你的单词字符串在它们的末尾有换行符。

如果您想要以下列形式输出:

wordone 0.0
wordtwo 0.0
wordthree 0.0

你应该取消新行,然后使用

for word, weight_or_whatever in sorted_words:
    wrds.write("{} {}\n".format(word, weight_or_whatever))

(我不确定数字代表什么。)

答案 1 :(得分:2)

正如user2357112指出的那样,你的字符串最后有换行符,因此你可以使用strip()删除前导和尾随空格,包括换行符。

for t in sorted_words:
      wrds.write(' '.join(str(s).strip() for s in t) + '\n')