Как заменить символы в строке в 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

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.