Удалить определенные знаки препинания из элементов списка в Python - PullRequest
0 голосов
/ 09 октября 2019

Из текстов песен я должен извлекать каждое слово как элементы, не включая запятые (,) в элемент. Например:

Она любит тебя, да, да, да Она любит тебя, да, да, да, да Ты думаешь, что потерял свою любовь Ну, я видел ее вчера Это ты думаешь о ней Иона сказала мне, что сказать, она говорит, что любит тебя, и ты знаешь, что это не может быть плохо

Я делю текст песни на элементы списка, а затем превращаю их в строчные буквы. Затем я попытался найти запятые из списка и отделил их. Теперь я хочу удалить запятые (,) из элементов списка.

Вот мой код:

text_file = open("Beatles.txt", "r")
lines= text_file.read().split()
x.lower() for x in ["A","B","C"]]
re.findall(r"[\w]+|[.,!?;]", "Hello, I'm a string!")

Мой вывод:

['she',' любит ',', ',' ты ',', ',', ',', ',', ',' ага ',', ',', ',' да ',', ','она', ',', 'любит', ',', 'ты', ',', ',', 'да', ',', ',', 'да']

Мой ожидаемый результат:

['она', 'любит', 'ты', 'да', 'да', 'она', 'любит', 'ты',«да», «да»]

1 Ответ

1 голос
/ 09 октября 2019

Вам не нужно регулярное выражение для удаления запятых и нижнего регистра:

s = "She loves you, yeah, yeah, yeah She loves you, yeah, yeah, yeah, yeah You think you lost your love Well, I saw her yesterday It's you she's thinking of And she told me what to say She says she loves you And you know that can't be bad"
s = ''.join(c.lower() for c in s if c != ',')
print(s.split())

Вывод:

['she', 'loves', 'you', 'yeah', 'yeah', 'yeah', 'she', 'loves', 'you', 'yeah', 'yeah', 'yeah', 'yeah', 'you', 'think', 'you', 'lost', 'your', 'love', 'well', 'i', 'saw', 'her', 'yesterday', "it's", 'you', "she's", 'thinking', 'of', 'and', 'she', 'told', 'me', 'what', 'to', 'say', 'she', 'says', 'she', 'loves', 'you', 'and', 'you', 'know', 'that', "can't", 'be', 'bad']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...