Я очень новичок в кодировании (всего несколько месяцев на Python) и NLTK (~ 1 месяц). У меня есть список предложений, которые я отфильтровал с помощью [i вместо 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. Похожая аналогия - Alt + Enter в Excel для ПК и CTRL-OPT-RETURN в числах для Mac. Является ли это возможным? Я пробовал Textwrap, но результат не совсем то, что мне нужно.
Желаемый результат:
["An apple a day, keeps a doctor away.",
"My favorite desert is Apple pie.",
"Apple candy is sold out!!"]
Спасибо!
@ThierryLathuille, я всего несколько месяцев в кодировании и всего один месяц в NLTKL, поэтому я все еще сильно полагаюсь на excel / page и powerpoint / keynote для завершения моего исследования / исследования. И именно поэтому я в первую очередь разместил этот вопрос - в конце концов, проще удалить квадратные скобки, чем превращать каждое предложение в строку. Надеюсь, это имеет для вас смысл.






Ваш 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!!
Спасибо!! Но у меня есть несколько списков в словаре, и я хочу, чтобы в каждом предложении была новая строка: «Яблоко», «Манго», «Апельсин». Я пробовал ниже, как предложено (stackoverflow.com/questions/3348460/…), но это не сработало. with open("/Users/cya2017/Desktop/csv//Filename" + now + ".csv","w", newline = " ") as fOut: csvOut = csv.DictWriter(fOut,["Event","Date","Member","keywordCount","Apple","Mango","Orange"]) csvOut.writeheader() csvOut.writerows(Filename)
Ваш желаемый результат на самом деле не CSV, вы уверены, что это то, что вы хотите, с квадратными скобками и всем остальным?