Удалить знак препинания из списка с помощью функций translate и maketrans - PullRequest
1 голос
/ 28 февраля 2020

Необходимо удалить знаки препинания из списка и затем сохранить его в том же списке

Код:

sentences = ["Hi! How are you doing?","Hope everything is fine.","Have an amazing day!"]
type(list1)
sentences = sentences.translate(str.maketrans('', '', string.punctuation))

Ошибка:

AttributeError                            Traceback (most recent call last)
<ipython-input-4-7b3b0cbf9c58> in <module>()
      1 sentences = ["Hi! How are you doing?","Hope everything is fine.","Have an amazing day!"]
      2 type(list1)
----> 3 sentences = sentences.translate(str.maketrans('', '', string.punctuation))

AttributeError: 'list' object has no attribute 'translate'

1 Ответ

1 голос
/ 28 февраля 2020

Ошибка говорит вам правду. Список не имеет атрибута translate - строка имеет. Вы должны вызывать это для строк в списке, а не для самого списка. Понимание списка хорошо для этого. Здесь вы можете вызвать translate() для каждой строки в списке:

import string

sentences = ["Hi! How are you doing?","Hope everything is fine.","Have an amazing day!"]

trans = str.maketrans('', '', string.punctuation)

[s.translate(trans) for s in sentences]
# ['Hi How are you doing', 'Hope everything is fine', 'Have an amazing day']
...