Python - удаление всех знаков препинания из строки и только печатание слов, содержащих «i» и равных или длиннее пяти символов

1
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 "не имеет атрибута" добавить ".

Что может быть неправильным и как я должен его решить?

Кроме того, как я мог бы только печатать миры, равные или превышающие пять символов, и содержать "i"?

  • 1
    cleanedText - это str, а не список (тогда он не имеет добавления)
Теги:
join
split
append

2 ответа

0
Лучший ответ

Чтобы удалить простой трюк, нужно заменить его пустой строкой (с replace). Во второй части мы рассмотрим два условия: 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
    Это сделало работу!
0

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

for letter in testText:
    if letter not in list('.,:;?!\''):
        cleanText += letter
print(cleanText)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню