对于句子列表,如何将句子保存一行



我对编码(在Python中只有几个月(和NLTK(~1个月(非常陌生。我有一个句子列表,我用 [ i for i 在 TokenizedSentences 中过滤掉了,如果 i 中的"苹果"] 看起来像这样——

itemDict["Apple"] = [ i for i in TokenizedSentences if "apple" in i ]

输出:

["An apple a day, keeps a doctor away.", "My favorite desert is apple pie.", "Apple candy is sold out!!"]
我想在将

结果保存到 CSV 文件时使每个句子成为新行。类似的类比是 PC 版 Excel 中的 Alt +Enter 和 Mac 版的 CTRL-OPT-RETURN 数字。可能吗?我尝试过Textwrap,但结果并不完全是我想要的。

期望输出:

["An apple a day, keeps a doctor away.",
"My favorite desert is Apple pie.",
"Apple candy is sold out!!"]

谢谢!

您的itemDict["Apple"]是字符串的list。打印时得到的是列表的表示形式,而不是列表本身。

Python 表示列表的方式是将其元素的文本表示括在方括号中,用逗号分隔。方括号和逗号不是数据的一部分。

获得问题的预期输出意味着转换列表的文本表示形式,并会给你一些无效的csv。

你想要的是每行一句话,仅此而已。

最好使用 csv 模块来做到这一点,这样它就会处理报价等。

import csv
sentences = ["An apple a day, keeps a doctor away.", "My favorite desert is apple pie.", "Apple candy is sold out!!"]
with open('sentences.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows([sentence] for sentence in sentences)

你会得到这个漂亮的csv文件:

"An apple a day, keeps a doctor away."
My favorite desert is apple pie.
Apple candy is sold out!!

最新更新