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»?

1
TheIllusiveNick 25 Сен 2018 в 06:42

2 ответа

Лучший ответ

Удалить простой трюк - значит заменить его пустой строкой (на 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)
0
Lucas 25 Сен 2018 в 03:52

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

for letter in testText:
    if letter not in list('.,:;?!\''):
        cleanText += letter
print(cleanText)
0
Dadep 25 Сен 2018 в 07:52