Как работает метод 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) он выдает только положительные числа в .
![]()
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() < .