Как работает replace в питоне
Перейти к содержимому

Как работает replace в питоне

  • автор:

Как работает метод replace python?

Строковый метод str.replace(old, new[, count]) вернет копию строки, в которой все подстроки old будут заменены на new. Если указать необязательный параметр count, то не все old, а только указанное количество будет заменено.

'The Young Pope'.replace('Young', 'New') # 'The New Pope' 'One Hundred and One Dalmatians'.replace('One', '1', 1) # '1 Hundred and One Dalmatians' 

Метод str.replace() в Python, меняет подстроку/символ в строке

Производит поиск и замену подстроки (символа) в строке

Синтаксис:
str.replace(old, new[, count]) 
Параметры:
  • old — str , подстрока или символ который меняем
  • new — str , подстрока или символ на который меняем
  • count — int , сколько раз меняем
Возвращаемое значение:
  • измененная копия строки.
Описание:

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

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

Примечание. Производить поиск и замену подстроки/символа в строке можно так же при помощи регулярных выражений, используя функцию re.sub() .

Общие примеры замены подстроки/символа в строке.

# замена обратных кавычек в строке >>> x = 'все вхождения подстроки `old` заменены на подстроку `new`' >>> x.replace('`', '-') # 'все вхождения подстроки -old- заменены на подстроку -new-' # замена обратных кавычек с ограничением в 2 замены >>> x = '2 вхождения подстроки `old` заменены на подстроку `new`' >>> x.replace('`', '~', 2) # '2 вхождения подстроки ~old~ заменены на подстроку `new`' # замена нескольких значений >>> x.replace('old', 'старая').replace('new', 'новая') # 'все вхождения подстроки `старая` заменены на подстроку `новая`' 

Замены нескольких значений в строке одной операцией.

Для замены нескольких разных символов/подстрок в одной операции (множественная замена) необходимо определить функцию, которая будет принимать исходную строку и список символов/подстрок, каждая со своим новым значением. Символы/подстроки с новыми значениями можно передавать разными способами, например как список двойных кортежей в виде [(‘old’, ‘new’), . ] или как словарь, где ключ будет старым значением, а значение — новым . В зависимости от того, в каком виде передаются значения, будет строится логика извлечения этих значений для осуществления замены в исходной строке.

В примере будем передавать символы/подстроки с их новыми значениями в виде кортежа, так как он дает больше гибкости. Гибкость будет состоять в том, что в примере будет возможность добавления количества замены каждого символа/подстроки в строке.

# примерная реализация функции множественной замены в строке # здесь еще нужно подумать над проверкой типов в кортежах . def replace(line, old_new_num): # при итерации по списку распаковываем кортежи на # старое и новое значения, а так же `n` - количество замен for vals in old_new_num: # если кортежа имеет 3 элемента, # значит присутствует количество замен if len(vals) == 3: # распаковываем кортеж old, new, n = vals # передаем аргументы методу и line = line.replace(old, new, n) elif len(vals) == 2: # распаковываем кортеж old, new = vals line = line.replace(old, new) else: # если в кортеже НЕ 2 или 3 элемента, # то поднимаем исключение raise 'кортеж должен состоять из 2-х или 3-х элементов' return line # сохраняем функцию в файл test.py и запускаем # $ python3 -i temp.py # исходная строка >>> line = 'абра-абра-кад-абра' # элементы кортежа означают: # ('заменяемое значение','новое значение', количество замен в строке) >>> replace_val = [('а', 'A', 3), ('б', 'Б'), ('кад', 'КАД')] >>> new_line = replace(line, replace_val) >>> new_line # 'AБрA-AБра-КАД-аБра' 

Из примера видим, что новая функция replace() работает как и ожидается, а именно символ ‘а’ заменился 3 раза, символ ‘б’ и подстрока ‘кад’ заменились по количеству совпадений.

  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Метод str.capitalize(), первая буква в строке заглавная
  • Метод str.casefold(), сворачивает регистр строки
  • Метод str.center(), выравнивает строку по центру
  • Метод str.count(), считает совпадения в строке
  • Метод str.encode(), преобразует строку в байты
  • Метод str.endswith(), совпадение с концом строки
  • Метод str.expandtabs(), меняет табуляцию на пробел
  • Метод str.find(), индекс первого совпадения в строке
  • Метод str.format(), форматирует строку
  • Метод str.format_map()
  • Метод str.index(), индекс первого совпадения подстроки
  • Метод str.isalnum(), строка состоит из цифр и букв
  • Метод str.isalpha(), строка состоит только из букв
  • Метод str.isascii(), все символы в строке являются ASCII
  • Метод str.isdecimal(), проверяет строку на десятичное число
  • Метод str.isdigit(), строка состоит только из цифр
  • Метод str.isidentifier() проверяет строку на идентификатор Python
  • Метод str.islower( ), проверяет строку на нижний регистр
  • Метод str.isnumeric(), проверяет строку на числовые символы
  • Метод str.isprintable(), проверяет на доступность для печати
  • Метод str.isspace(), является ли строка пробелом
  • Метод str.istitle(), проверяет наличие заглавных букв в словах
  • Метод str.isupper(), проверяет строку на верхний регистр
  • Метод str.join(), объединяет список строк
  • Метод str.ljust(), ровняет строку по левому краю
  • Метод str.lower(), строку в нижний регистр
  • Метод str.lstrip(), обрезает символы в начале строки
  • Метод str.maketrans(), таблица символов для str.translate()
  • Метод str.partition(), делит строку по первому совпадению
  • Метод str.removeprefix(), удаляет префикс строки
  • Метод str.removesuffix(), удаляет суффикс строки
  • Метод str.replace(), меняет подстроку/символ в строке
  • Метод str.rfind(), индекс последнего совпадения подстроки
  • Метод str.rindex(), индекс последнего совпадения в строке
  • Метод str.rjust(), ровняет строку по правому краю
  • Метод str.rpartition(), делит строку по последнему совпадению
  • Метод str.rsplit(), делит строку справа
  • Метод str.rstrip(), обрезает символы на конце строки
  • Метод str.split(), делит строку по подстроке
  • Метод str.splitlines(), делит текст по символу ‘\n’
  • Метод str.startswith(), совпадение с началом строки
  • Метод str.strip(), обрежет строку с обоих концов
  • Метод str.swapcase(), сменит регистр символов в строке
  • Метод str.title(), каждое слово с заглавной буквы
  • Метод str.translate(), транслирование строки
  • Метод str.upper(), переведет строку в верхний регистр
  • Метод str.zfill(), дополнит строку нулями
  • Форматирование строк в стиле printf
  • F-string. Форматированные строки

Метод replace() в Python

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

str.replace(old, new [, count])

Параметры

Метод в 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

replace() странно работает

f=input(‘фамилия ‘)
def azaz(x):
a=x.find(‘о’)
if a print(x.replace(x[0:a+1],’говно’))
return x
azaz(f)
почему то если вписать фамилию с 2 ‘o’ в промежутке то заменяются оба ‘o’. (одоев>>говнодговноев) в остальных случаях все норм

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Код работает нереально странно
Написал я код: prompt = ‘Здарова мы кинотеатр типо да, цена зависит от твоего возраста’ prompt2 =.

Не работает replace
Не работает replace, в скрипте идет парсинг веб-страницы (вырезаются длинные строки) возникла.

Selenium странно работает find_elements_by_xpath
Приветствую! Ситуация следующая: есть вот такой код search_res =.

random.randint работает странно
Почему при вызове генератора как random.randint(-100, 100) он выдает только положительные числа в .

Эксперт Python

5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

ЦитатаСообщение от shitpostinka Посмотреть сообщение

replace() странно работает
Она работает правильно. Иди читай документацию.

>>> help(str.replace) Help on method_descriptor: replace(self, old, new, count=-1, /) Return a copy with all occurrences of substring old replaced by new. count Maximum number of occurrences to replace. -1 (the default value) means replace all occurrences. If the optional argument count is given, only the first count occurrences are replaced.

Регистрация: 17.09.2021
Сообщений: 6
читала. как пофиксить
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Странно работает Replace
Здравствуйте, в Windows Form через TextBox ввожу строку и хочу заменить все точки в ней на запятые.

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией.

Replace не работает
Задача такая нужно заменить символ *, но в моем скрипте сразу включается комментирование. Как.

Replace не работает
Вот простенький код: var orig = original.value; var msgs = orig.split("\n"); for(var h = 0; h.

Не работает replace
Почему то не работает String sSpeed = Double.toString(speed); .

Странно работает / не работает кулер на видеокарте
Всем привет! Имею видеокарту geforce gtx 650 ti boost от производителя gainward. Пару месяцев назад.

Не работает функция Replace
почему метод Replace не работает в вин форм вообще, уже который раз void ppts() < .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *