@domanskiy

Как в PYTHON заменить символы в строке используя массив?

Есть строка. Например text = "Pantone 485 C"
Есть массив arr = ['Pantone ', ' C']
пробую a = text.replace(arr, "")
не работает
В чём может быть проблема? Есть ли решение?
  • Вопрос задан
  • 16012 просмотров
Решения вопроса 1
sswwssww
@sswwssww
text = "Pantone 485 C"
arr = ['Pantone ', ' C']
for x in arr:
    text = text.replace(x, "")
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
0xD34F
@0xD34F
from functools import reduce


a = reduce(lambda p, c: p.replace(c, ''), arr, text)
Ответ написан
Комментировать
adugin
@adugin Куратор тега Python
Решение "в лоб", без учёта нюансов:
re.sub('|'.join(arr), '', text)
Ответ написан
Комментировать
@szelga
метод replace принимает первым параметром строку, а не список. если там что-то другое, то метод не понимает, чего вы от него хотите, и выдаёт ошибку. я тоже не понимаю, чего вы от него хотите. если хотите вхождения всех строк из списка заменить на "", то пробегитесь по списку, применяя replace для каждого элемента.
и внимательнее читайте документацию в следующий раз.
и посмотрите в сторону регулярных выражений, возможно, они для исходной задачи подойдут лучше, чем мучить replace.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы