Как заменить символы в строке в Python
Узнайте, как заменять символы или подстроки в строках Python. Освойте метод replace(), лимиты подсчета и использование перевода для нескольких символов.
Обзор
Манипулирование строками лежит в основе анализа входных данных, рендеринга шаблонов, очистки данных и генерации выходного текста. В Python изменить определенные символы или подстроки внутри текстового блока несложно, но для этого необходимо понимать фундаментальное свойство строк: неизменяемость.
Поскольку строки Python неизменяемы, вы не можете изменять их символы на месте (например, запись `text[0] = "A"` вызывает `TypeError`). Вместо этого любая операция, изменяющая строку, должна создавать и возвращать совершенно новую строку. Основным инструментом для этого является встроенный метод `.replace()`.
Метод `.replace(old, new)` ищет в строке все вхождения указанной подстроки и заменяет их новой подстрокой. Вы также можете указать необязательный третий аргумент count, который ограничивает количество замен, выполняемых слева направо. Для более сложных многосимвольных замен вы можете использовать метод `.translate()` или регулярные выражения с функцией `re.sub()`.
Код и вывод выполнения
Этот скрипт демонстрирует изменение строк путем замены подстрок и символов с помощью метода replace().
text = "banana apple banana cherry"
# 1. Replace all occurrences of a word
replaced_all = text.replace("banana", "orange")
print("Replaced all:", replaced_all)
# 2. Replace with a count limit (only first occurrence)
replaced_limit = text.replace("banana", "orange", 1)
print("Replaced limit:", replaced_limit)
# 3. Replace individual characters (immutability demonstration)
phrase = "pyth0n"
corrected = phrase.replace("0", "o")
print("Corrected string:", corrected)Replaced all: orange apple orange cherry
Replaced limit: orange apple banana cherry
Corrected string: pythonПошаговая реализация
- Вызовите метод .replace() для целевой строки.
- Передайте целевую подстроку в качестве первого аргумента, а замену — в качестве второго.
- Используйте аргумент count, если вы хотите ограничить количество замен.
Часто задаваемые вопросы
Как заменить символы в строке на месте?
Вы не можете этого сделать, потому что строки Python неизменяемы. Вы должны присвоить результат метода .replace() обратно строковой переменной: text = text.replace(...).
Является ли replace() чувствительным к регистру?
Да, .replace() строго чувствителен к регистру. Для выполнения замен без учета регистра необходимо использовать регулярные выражения с модулем re и re.IGNORECASE.
Связанные темы
Узнайте, как разделить строку на список в Python с помощью метода Split(). Изучите разделение по пробелам, запятым, символам новой строки и ограничение количества разделений.
Как перевернуть строку в PythonУзнайте, как перевернуть строку в Python с помощью нарезки, функции Reverse() и конкатенации циклов, с помощью визуальных примеров кода.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Python Try/Except и обработка ошибок
Предотвратите сбой ваших скриптов Python. Узнайте, как блокировать try, кроме, наконец, и как правильно создавать пользовательские исключения.
Шпаргалка по строковым методам Python
Полное справочное руководство по манипулированию строками в Python. Мастер форматирования, поиска, разделения, замены и проверки свойств строк.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.