удаление символов с помощью regex в списке строк

У меня есть список из 2 пунктов:

body = ['''Customer formerly known as ALEX tel # 123 . 123123 123
word word word word ...''', '12323']

Я пытаюсь использовать regex, чтобы удалить пробелы и оставить только слова для текста в 1-м пункте. I am able remove but not going through the list. Я получаю ошибку.

for j, item in enumerate(body):
    test = re.sub(r'[^A-Za-z-]+', ' ', body[0])
    item[0] = test
    print(item)

Я хотел бы, чтобы новый список был заменен на:

['''Customer formerly known as ALEX tel word word word word''', '12323']

Traceback (most recent call last) <ipython-input-107-301fe3075791> in <module>()
      6 for j, item in enumerate(body):
      7     test = re.sub(r'[^A-Za-z-]+', ' ', body[0])
----> 8     item[0] = test
      9     print(item)
     10 
TypeError: 'str' object does not support item assignment

1 ответ

  1. item is a string (think "hello")

    "hello"[2] = '5' 
    

    не является разрешенной операцией… хороший метод для отладки этого типа вещи-использовать print(напримерprint item, до возникновения ошибки)

    это решает, почему вы получили ошибку, есть несколько других issueus с вашим кодом, однако (см. комментарий jonrsharps, например)