我对编码(在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!!"]
谢谢!
答案 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!!