Что делает replace python

Изменение строки в Python – метод replace

Строки — это важный тип данных, который есть почти в любом языке программирования. Он служит для создания, изменения и сохранения текстовой информации, а также используется при реализации некоторых задач, связанных с числами.

Python даёт программисту много инструментов для работы со строками, в том числе и метод replace() .

Что делает метод

Слово replace имеет дословный перевод «заменять», так что название метода точно описывает его назначение. С помощью replace можно заменить часть строки или её всю на другую строку.

Синтаксис метода выглядит так:

str.replace(old_str, new_str[, count])

В качестве аргументов в метод передаются:

  • old_str – часть исходной строки, которую необходимо заменить.
  • new_str – строка, на которую заменяют исходную строку ( old_str ).
  • count – определяет количество вхождений подстроки, которые необходимо заменить.

Здесь count – не обязательный параметр. Если его не указывать, то будут заменены все вхождения подстрок на новые.

В качестве str используется исходная строка (тип данных string).

Таким образом, метод replace позволяет гибко изменять только необходимые части строки str , работа метода продемонстрирована в следующих примерах:

my_str = "one dog, one cat, one rabbit" #Заменяем все вхождения "one" в строке a = my_str.replace("one", "two") print(a) # Выведет two dog, two cat, two rabbit #Заменяем первое вхождение "one" в строке b = my_str.replace("one", "two", 1) print(b) # Выведет two dog, one cat, one rabbit #Заменяем первые два вхождения "one" в строке c = my_str.replace("one", "two", 2) print(c) # Выведет two dog, two cat, one rabbit

Важно помнить, что строки — это неизменяемые последовательности. Поэтому метод replace не заменяет отдельные символы в целевой строке, вместо этого он создает её копию с нужными изменениями. Это важная особенность языка Python, которую должен знать каждый программист.

Это не очевидно, с помощью метода replace можно заменить сразу несколько значений, например все элементы списка:

str_list = ["кот", "собака", "кот собака", "кот кот"] # в новый список записываем элементы начального списка, измененные # с помощью replace result_list = [elem.replace("кот", "кошка", 1) for elem in str_list] print(result_list) # Выведет ['кошка', 'собака', 'кошка собака', 'кошка кот']

Применение replace для замены нескольких значений

С помощью словаря

Предыдущий пример позволяет заменить несколько элементов, однако все они имеют одно и то же значение «кот». Если необходимо заменить несколько разных значений, например «кот» на «кошка» и «кошка» на «собака», то необходимо реализовать чуть более сложную программу с использованием словарей:

# Функция для замены нескольких значений def multiple_replace(target_str, replace_values): # получаем заменяемое: подставляемое из словаря в цикле for i, j in replace_values.items(): # меняем все target_str на подставляемое target_str = target_str.replace(i, j) return target_str # создаем словарь со значениями и строку, которую будет изменять replace_values = my_str = "У меня есть кот и кошка" # изменяем и печатаем строку my_str = multiple_replace(my_str, replace_values) print(my_str)

Здесь replace используется в функции, аргументы которой исходная строка и словарь со значениями для замены.

Читайте также:  String without space python

У этого варианта программы есть один существенный недостаток, программист не может быть уверен в том, какой результат он получит. Дело в том, что словари — это последовательности без определенного порядка, поэтому рассматриваемый пример программы может привести к двум разным результатам в зависимости от того, как интерпретатор расположит элементы словаря:

В Python версии 3.6 и более поздних порядок перебора ключей будет такой же, как и при котором они созданы. В более ранних версиях Python порядок может отличаться.

Для решения этой проблемы можно заменить обычный словарь на упорядоченный словарь OrderedDict , который нужно импортировать следующей командой:

from collections import OrderedDict

Помимо импорта в программе нужно поменять буквально одну строку:

replace_values = OrderedDict([("кот", "кошка"), ("кошка", "собака")])

В этом случае, результат будет «У меня есть собака и собака», если же поменять местами элементы упорядоченного словаря при инициализации следующим образом: OrderedDict([(«кошка», «собака»), («кот», «кошка»)]) , то результат будет «У меня есть кошка и собака».

Вариант со списками

Замену нескольких значений можно реализовать и по-другому, для этого используем списки:

my_str = "У меня есть кот и кошка" # в цикле передаем список (заменяемое, подставляемое) в метод replace for x, y in ("кот", "кошка"), ("кошка", "собака"): my_str = my_str.replace(x, y) print(my_str) # Выведет "У меня есть собака и собака"

В данном примере цикл for делает 2 итерации:

  1. Подставляет в метод replace значения из первого списка: replace(«кот», «кошка»), в результате чего получается строка «У меня есть кошка и кошка».
  2. Подставляет в метод replace значения из второго списка: replace(«кошка», «собака»), получается строка «У меня есть собака и собака».

Другие типы Python и метод replace

Метод replace есть не только у строк, с его помощью программист может изменять последовательности байт, время и дату.

Синтаксис метода для последовательности байт ничем не отличается от синтаксиса для строк, для дат и времени в аргументах метода replace нужно писать идентификатор изменяемой цели, например:

from datetime import date t_date = date(2020, 4, 23) t_date = t_date.replace(day = 11) print(t_date) # Выведет 2020-04-11

Для времени метод replace применяется аналогично.

Источник

Replace Python

Основы

Введение в тему

В этом уроке мы рассмотрим как заменить подстроку внутри строки, используя метод replace().

Метод replace Python возвращает копию строки, в которой все вхождения искомой подстроки заменяются другой подстрокой.

Что делает метод

Слово replace переводится как «заменять», что название этого метода является отличным описанием того, что он делает. С помощью метода replace можно заменить часть строки, называемую подстрокой или её всю на другую строку. Метод replace позволяет гибко изменять только необходимые части строки str.

Читайте также:  See html on github

Синтаксис

Метод .replace() имеет следующий синтаксис:

Параметры

В качестве аргументов в метод передаются:

str — Строка, к которой применяется метод (тип данных string).

old — Подстрока, которую необходимо найти и заменить (тип данных string).

new — Новая подстрока, которой будет заменена старая (тип данных string).

count— Необязательный аргумент. Количество совпадений старой подстроки, которую необходимо заменить (тип данных int). Если этот параметр не указать, то будут заменены все вхождения подстрок на новые.

Вот несколько примеров применения метода:

my_var = "Ivan, Rinat, Olga, Kira" #Заменяем все подстроки "Olga" в строке a = my_var.replace("Olga", "Olya") print(a) #Заменяем первую подстроку "i" в строке b = my_var.replace("i", "I", 1) print(b) #Заменяем первые две подстроки "a" в строке c = my_var.replace("a", "A", 2) print(c) # Вывод: Ivan, Rinat, Olya, Kira Ivan, RInat, Olga, Kira IvAn, RinAt, Olga, Kira

Возвращаемое значение

Метод возвращает копию строки, в которой старая подстрока заменяется новой подстрокой. Строка, к которой применяется метод остаётся неизменной. Если искомая подстрока не обнаружена, то возвращается копия исходной строки.

my_var = "Ivan, Rinat, Olga, Kira" #Заменяем все вхождения "Olga" в строке a = my_var.replace("Roman", "Roma") print(a) # Вывод: Ivan, Rinat, Olga, Kira

Применение replace для замены нескольких значений

С помощью данного метода возможно выполнить поиск и замену нескольких значений, например элементов коллекции:

my_var = ['Ivan', 'Rinat', 'Olga', 'Kira'] # в новый список записываем элементы начального списка, измененные # с помощью replace new_list = [_.replace("i", "A", 1) for _ in my_var] print(new_list) # Вывод: ['Ivan', 'RAnat', 'Olga', 'KAra']

С помощью словаря

Предыдущий пример позволяет заменить несколько элементов, однако все они имеют одно и то же значение «i». Если необходимо заменить несколько разных значений, например «i» на «I» и «a» на «A», то необходимо реализовать чуть более сложную программу с использованием словарей:

# Функция для замены нескольких значений def multiple_replace(target_str, replace_values): # получаем заменяемое: подставляемое из словаря в цикле for i, j in replace_values.items(): # меняем все target_str на подставляемое target_str = target_str.replace(i, j) return target_str # создаем словарь со значениями и строку, которую будет изменять replace_values = my_str = "Ivan, Rinat, Olga, Kira" # изменяем и печатаем строку my_str = multiple_replace(my_str, replace_values) print(my_str) # Вывод: IvAn, RInAt, OlgA, KIrA

Здесь replace используется в функции, аргументы которой исходная строка и словарь со значениями для замены.

У этого варианта программы есть один существенный недостаток, программист не может быть уверен в том, какой результат он получит. Дело в том, что словари — это последовательности без определенного порядка, поэтому рассматриваемый пример программы может привести к двум разным результатам в зависимости от того, как интерпретатор расположит элементы словаря:

В Python версии 3.6 и более поздних порядок перебора ключей будет такой же, как и при котором они созданы. В более ранних версиях Python порядок может отличаться.

Для решения этой проблемы можно заменить обычный словарь на упорядоченный словарь OrderedDict, который нужно импортировать следующей командой:

Источник

Метод replace() в Python

Метод replace() возвращает копию строки, в которой все вхождения подстроки заменяются другой подстрокой.

Параметры

Метод в Python может принимать максимум 3 параметра:

  • old ‒ старая подстрока, которую нужно заменить;
  • new ‒ новая подстрока, которая заменит старую подстроку;
  • count (необязательно) ‒ сколько раз вы хотите заменить старую подстроку новой.

Примечание: Если число не указано, метод заменяет все вхождения старой подстроки новой.

Возвращаемое значение

Команда возвращает копию строки, в которой старая подстрока заменяется новой подстрокой. Исходная строка не изменилась.

Если старая подстрока не найдена, возвращается копия исходной строки.

Пример 1: Использование команды

song = 'cold, cold heart' # replacing 'cold' with 'hurt' print(song.replace('cold', 'hurt')) song = 'Let it be, let it be, let it be, let it be' # replacing only two occurences of 'let' print(song.replace('let', "don't let", 2))
hurt, hurt heart Let it be, don't let it be, don't let it be, let it be

Дополнительные примеры

song = 'cold, cold heart' replaced_song = song.replace('o', 'e') # The original string is unchanged print('Original string:', song) print('Replaced string:', replaced_song) song = 'let it be, let it be, let it be' # maximum of 0 substring is replaced # returns copy of the original string print(song.replace('let', 'so', 0))
Original string: cold, cold heart Replaced string: celd, celd heart let it be, let it be, let it be

Источник

Python String replace() Method

The replace() method replaces a specified phrase with another specified phrase.

Note: All occurrences of the specified phrase will be replaced, if nothing else is specified.

Syntax

Parameter Values

Parameter Description
oldvalue Required. The string to search for
newvalue Required. The string to replace the old value with
count Optional. A number specifying how many occurrences of the old value you want to replace. Default is all occurrences

More Examples

Example

Replace all occurrence of the word "one":

txt = "one one was a race horse, two two was one too."

Example

Replace the two first occurrence of the word "one":

txt = "one one was a race horse, two two was one too."

Unlock Full Access 50% off

COLOR PICKER

colorpicker

Join our Bootcamp!

Report Error

If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials
Top References
Top Examples
Get Certified

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Источник

Оцените статью