Как преобразовать прописные слова в списке в строчные?

Я получил текстовый файл с 850 строками разных вопросов по теме.

Все пишут строчными буквами.

Моя конечная цель - иметь текстовый файл, в котором все написано в верхнем регистре, кроме стоп-слов и слов, с которых начинаются вопросы.

Пока я просто не знаю, как я могу преобразовать найденные слова в нижний регистр

# List of Stopwords
import os
import codecs
# open working directory
stopwords = open("C:\\Python Project\\Headings Generator\\stopwords.txt", "r" ,encoding='utf8',errors="ignore")

stopwordsList = [(line.strip()).title() for line in stopwords]

questions = open("C:\\Python Project\\Headings Generator\\questionslist.txt", "r" ,encoding='utf8',errors="ignore")
questionsList = [(line.strip()).title().split() for line in questions]

for sentences in questionsList:
    for words in sentences:
       if words in stopwordsList:
#How to replace the found word with a lowercase version of it?

Большое тебе спасибо!


person Pythontrator    schedule 23.06.2020    source источник
comment
вы должны использовать string.upper() и string.lower()   -  person Lwi    schedule 23.06.2020
comment
Это было бы так же просто, как words.lower()   -  person Snedecor    schedule 23.06.2020
comment
stackoverflow.com/questions/9257094 /   -  person simon    schedule 23.06.2020


Ответы (3)


В python вы можете преобразовать слово в нижний регистр с помощью встроенной функции следующим образом:

string = 'WORD'
string.lower()

если ваша строка состоит из прописных букв (WORD), она станет (word), а если она содержит верхние и нижние буквы (WoRd), она также станет (word)

person RaoufM    schedule 23.06.2020
comment
Проблема в том, что он не сохраняется в списке стоп-слов. Может быть, потому что эта строка находится в списке? - person Pythontrator; 23.06.2020
comment
Создайте новый список, а затем, если слово в верхнем регистре, поверните его в нижний регистр, затем добавьте его в список, иначе просто добавьте его сразу. - person RaoufM; 23.06.2020
comment
Добавить будет работать? Это предложение, в котором я проверяю стоп-слова, чтобы преобразовать их в нижний регистр ['Что', Мужчины'S, 'Тело', 'Мытье', 'Запахи', 'The', 'Лучшее'], ['Что', 'Есть', 'Самый', 'Лучший', 'Тело', 'Стирка'], - person Pythontrator; 23.06.2020
comment
Вы можете создать переменную, которая является строкой, а затем, когда ваш список будет готов, вы можете сделать your_string_var.join (your_list_var), и вы получите строку - person RaoufM; 23.06.2020
comment
что вы думаете об использовании enumerate для получения индекса для метода вставки? - person Pythontrator; 23.06.2020
comment
Я не знаю.. Я думаю, это может сработать. - person RaoufM; 23.06.2020

Строки Python имеют встроенный метод string.lower(), который возвращает строку в нижнем регистре (есть также метод string.upper() и метод string.swapcase(), оба возвращают строку в нужном регистре)

person fesieg    schedule 23.06.2020

используйте строковый метод string.lower().
из документ:

str.lower()
Return a copy of the string with all the cased characters 4 converted to lowercase.

The lowercasing algorithm used is described in section 3.13 of the Unicode Standard.

Пример :

>>> 'HELLO WORLD'.lower()
'hello world'
>>> 'HeLLo WorLD'.lower()
'hello world'

В вашем коде:

# List of Stopwords
import os
import codecs
# open working directory
stopwords = open("C:\\Python Project\\Headings Generator\\stopwords.txt", "r" ,encoding='utf8',errors="ignore")

stopwordsList = [(line.strip()).title() for line in stopwords]

questions = open("C:\\Python Project\\Headings Generator\\questionslist.txt", "r" ,encoding='utf8',errors="ignore")
questionsList = [(line.strip()).title().split() for line in questions]

for sentences in questionsList:
    for words in sentences:
       if words in stopwordsList:
           words = words.lower()

Я также даю вам этот другой пост

person Lwi    schedule 23.06.2020
comment
Эй, спасибо за вашу помощь. Я пробовал так, но когда я печатаю список вопросов, стоп-слова выглядят нетронутыми. screencast.com/t/1SLNyewf - person Pythontrator; 23.06.2020
comment
я могу увидеть список стоп-слов? - person Lwi; 23.06.2020