【发布时间】:2019-06-18 11:44:41
【问题描述】:
我有一个 2 列逗号分隔的英语句子文本文件,并将它们翻译成另一种语言,每个翻译对都在新行上,例如
i like cats,me gustan los gatos
hello,hola
我想打开该文件,然后只获取该对的第二部分(翻译)并获得这些翻译的列表。我已经使用了显示的代码。但是,输出是最后一项总是在列表之后的末尾再次打印,这是我不想要的。
with open('translate_outputs.txt', newline ='') as translations:
translation_reader = csv.reader(translations, delimiter = ',')
for translation in translation_reader:
just_translation = translation[1].lower()
translation_list = []
translation_list.append(just_translation)
print(translation_list)
预期结果:
['me gustan los gatos']
['hola']
实际结果:
['me gustan los gatos']
['hola']
hola
【问题讨论】:
-
你确定后面的代码中没有打印吗?你可能在循环结束后的某处打印
just_translation -
正如最后一条评论所暗示的,您显示的代码不会产生您显示的输出。请向我们展示完整的实际代码或当前代码的实际输出。阅读并关注How to create a Minimal, Complete, and Verifiable example。
-
您的 sn-p 不会重现此行为。请发布一个适当的最小 reproducible 示例。
-
另外(不相关但无论如何):你想创建
translation_listbefore 循环 - 否则你在每次迭代时继续覆盖它,只会得到最后一个值最后。 -
为什么要创建一个列表,而您总是向其中添加一个元素?
标签: python python-3.x list csv