Python - удаление всех знаков препинания из строки и только печатание слов, содержащих «i» и равных или длиннее пяти символов - PullRequest
0 голосов
/ 25 сентября 2018
testText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec mauris nec tellus mollis ullamcorper. Vestibulum sit amet arcu placerat, sagittis quam sed, rutrum sem. Morbi vulputate odio non lacus."
splitText = testText.split(" ")
print(splitText)
cleanedText = ''
for letter in testText:
    if letter in list('.,:;?!'):
        cleanedText.append(letter)
''.join(cleanedText)

Я пытаюсь удалить все знаки препинания в параграфе выше, но я сталкиваюсь с «Ошибка атрибута: объект 'str' не имеет атрибута 'append'".

Что потенциально может пойти не так и как мне решить эту проблему?

Кроме того, как мне тогда печатать только миры, длина которых не превышает пяти символов, и содержать «i»?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

попробуйте это:

for letter in testText:
    if letter not in list('.,:;?!\''):
        cleanText += letter
print(cleanText)
0 голосов
/ 25 сентября 2018

Удалить простой трюк - значит заменить его на пустую строку (с replace).Для второй части мы рассмотрим 2 условия: что i в слове и длина равна или больше 5. Остерегайтесь того, что мы смотрим на I в верхнем регистре!

testText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec mauris nec tellus mollis ullamcorper. Vestibulum sit amet arcu placerat, sagittis quam sed, rutrum sem. Morbi vulputate odio non lacus."
str_to_remove = list('.,:;?!')

for letter in str_to_remove:
    testText = testText.replace(letter, '')

for word in testText.split(' '):
    if 'i' in word and len(word) >= 5:
        print(word)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...