我对编码(在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!!