Функция str replace() в Python
Функция replace() в Python используется для создания строки путем замены некоторых частей другой строки.
Исходная строка остается неизменной. Новая строка – это копия исходной строки, в которой все вхождения старой подстроки заменены на новую.
Если указан необязательный счетчик аргументов, заменяются только первые вхождения счетчика. Мы также можем использовать эту функцию для замены символов в строке.
Пример
Давайте посмотрим на несколько простых примеров использования функции string replace().
Изменение строки в Python – метод replace
Строки — это важный тип данных, который есть почти в любом языке программирования. Он служит для создания, изменения и сохранения текстовой информации, а также используется при реализации некоторых задач, связанных с числами.
Python даёт программисту много инструментов для работы со строками, в том числе и метод replace() .
Что делает метод
Слово replace имеет дословный перевод «заменять», так что название метода точно описывает его назначение. С помощью replace можно заменить часть строки или её всю на другую строку.
Синтаксис метода выглядит так:
В качестве аргументов в метод передаются:
- old_str – часть исходной строки, которую необходимо заменить.
- new_str – строка, на которую заменяют исходную строку ( old_str ).
- count – определяет количество вхождений подстроки, которые необходимо заменить.
В качестве str используется исходная строка (тип данных string).
Таким образом, метод replace позволяет гибко изменять только необходимые части строки str , работа метода продемонстрирована в следующих примерах:
Это не очевидно, с помощью метода replace можно заменить сразу несколько значений, например все элементы списка:
Применение replace для замены нескольких значений
С помощью словаря
Предыдущий пример позволяет заменить несколько элементов, однако все они имеют одно и то же значение «кот». Если необходимо заменить несколько разных значений, например «кот» на «кошка» и «кошка» на «собака», то необходимо реализовать чуть более сложную программу с использованием словарей:
Здесь replace используется в функции, аргументы которой исходная строка и словарь со значениями для замены.
У этого варианта программы есть один существенный недостаток, программист не может быть уверен в том, какой результат он получит. Дело в том, что словари — это последовательности без определенного порядка, поэтому рассматриваемый пример программы может привести к двум разным результатам в зависимости от того, как интерпретатор расположит элементы словаря:
- У меня есть собака и собака
- У меня есть кошка и собака
Для решения этой проблемы можно заменить обычный словарь на упорядоченный словарь OrderedDict , который нужно импортировать следующей командой:
Помимо импорта в программе нужно поменять буквально одну строку:
Изменить её надо на:
В этом случае, результат будет «У меня есть собака и собака», если же поменять местами элементы упорядоченного словаря при инициализации следующим образом: OrderedDict([(«кошка», «собака»), («кот», «кошка»)]) , то результат будет «У меня есть кошка и собака».
Вариант со списками
Замену нескольких значений можно реализовать и по-другому, для этого используем списки:
В данном примере цикл for делает 2 итерации:
- Подставляет в метод replace значения из первого списка: replace(«кот», «кошка»), в результате чего получается строка «У меня есть кошка и кошка».
- Подставляет в метод replace значения из второго списка: replace(«кошка», «собака»), получается строка «У меня есть собака и собака».
Другие типы Python и метод replace
Метод replace есть не только у строк, с его помощью программист может изменять последовательности байт, время и дату.
Синтаксис метода для последовательности байт ничем не отличается от синтаксиса для строк, для дат и времени в аргументах метода replace нужно писать идентификатор изменяемой цели, например:
Функция replace() в Python
Python имеет встроенную функцию string.replace() для замены строки другой строкой. Функция string.replace() function принимает заменяемую строку и новую строку, которой вы хотите заменить старую.

- old string : строка, которую нужно заменить.
- new string : новая часть строки, которую вы хотите поместить в позицию старой строки.
- count : количество раз.
Пример 1: Замена старой строки новой строкой, переданной функции
В приведенном выше фрагменте кода мы заменили строку «pythononline» на «AP».
Замена указанного количества экземпляров
Теперь давайте используем параметр count, чтобы указать количество экземпляров строки, которую мы хотим заменить.
Пример 2: Использование count в качестве параметра функции replace()
В этом примере мы передали входную строку как — ‘abcdaaseweraa’. Кроме того, мы передали символ «а» исходной строки, который нужно заменить символом «x».
Здесь счетчик установлен на 2, т.е. только первые два встреченных символа «a» будут заменены на символ «x». Остальные встретившиеся буквы «а» не будут добавлены позже и останутся такими же.
Функция replace() с модулем Pandas
Функцию replace() также можно использовать для замены некоторой строки, присутствующей в csv или текстовом файле.
Модуль Python Pandas полезен при работе с наборами данных. Функция pandas.str.replace() function используется для замены строки другой строкой в переменной или столбце данных.
В следующем примере мы будем использовать следующий набор данных:

В приведенном выше фрагменте кода pandas.read_csv() function используется для импорта и загрузки набора данных.
Как видно из набора данных выше, мы выбрали столбец «Язык», чтобы заменить «английский» на «хинди».