Для списка предложений, как сохранить предложение в строке?

Я очень новичок в кодировании (всего несколько месяцев на 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!!"]

Спасибо!

Ваш желаемый результат на самом деле не CSV, вы уверены, что это то, что вы хотите, с квадратными скобками и всем остальным?

Thierry Lathuille 21.04.2018 14:49

@ThierryLathuille, я всего несколько месяцев в кодировании и всего один месяц в NLTKL, поэтому я все еще сильно полагаюсь на excel / page и powerpoint / keynote для завершения моего исследования / исследования. И именно поэтому я в первую очередь разместил этот вопрос - в конце концов, проще удалить квадратные скобки, чем превращать каждое предложение в строку. Надеюсь, это имеет для вас смысл.

cya2017 21.04.2018 15:18

Excel не ожидает квадратных скобок. Просто напишите обычный CSV-файл. Используйте Python csv.writer

Barmar 21.04.2018 15:43
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
3
99
1

Ответы 1

Ваш 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","Ora‌​nge"]) csvOut.writeheader() csvOut.writerows(Filename)

cya2017 22.04.2018 06:25

Другие вопросы по теме