Удаление слов начинается с верхнего регистра
Так что я новичок в Python и хочу отфильтровать все слова в тексте, который начинается с заглавной буквы, так что с моим ограниченным знанием Python я сделал это:
def filterupper(text):
upper = string.ascii_uppercase
filteredupper = [w for w in text not in startswith(upper)]
return filteredupper
и эта ошибка пришла
File "<pyshell#58>", line 3, in filterupper
filteredupper = [w for w in text not in startswith(upper)]
NameError: глобальное имя "setswith" не определено
так что я попробовал это:
def filterupper(text):
upper = string.ascii_uppercase
filteredupper = [w for w in text not in upper]
return filteredupper
и эта ошибка пришла:
File "<pyshell#55>", line 3, in filterupper
filteredupper = [w for w in text not in upper]
TypeError: 'in <string>' requires string as left operand, not list
так что любой может сказать мне, как удаление слов начинается с заглавной буквы, и скажите мне, что я сделал не так в этих кодах
благодарю вас
1 ответ
Решение
Попробуйте следующее, используя str.islower()
проверить, является ли буква строчной:
def filterupper(text):
return " ".join([word for word in text.split() if word[0].islower()])
>>> filterupper("My name is Bob And I am Cool")
"name is am"
>>>