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

时间:2018-04-21 12:45:03

标签: python format

我对编码(在Python中只有几个月)和NLTK(约1个月)非常陌生。我有一个句子列表,我用 [i for i in TokenizedSentences if if“apple”in 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文件时将每个句子换成新行。类似的比喻是Excel中的Alt + Enter for PC和Mac中的CTRL-OPT-RETURN数字。可能吗?我试过Textwrap,但结果并不完全是我想要的。

期望的输出:

["An apple a day, keeps a doctor away.",

"My favorite desert is Apple pie.",

"Apple candy is sold out!!"]

谢谢!

1 个答案:

答案 0 :(得分:0)

您的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!!