← Все вопросы
Как заменить только первое вхождение подстроки, а не все?
13
replace меняет сразу все вхождения, а мне надо заменить только самое первое. Можно ли как-то ограничить?
s = "один два один два один"
# хочу заменить только первое 'один'
3 ответа
19
✓ Принятый ответ — помог автору
У replace есть третий аргумент — максимальное число замен. Передай 1:
s = "один два один два один"
s.replace("один", "1", 1)
# '1 два один два один'
Бахтияр Кадеш вообще не знал про третий аргумент, спасибо 👍 · 9 месяцев назад
7
s.replace("один", "1", 1) — последняя единичка это count.
5
А для замены только ПОСЛЕДНЕГО вхождения готового метода нет, но можно через rsplit: "1".join(s.rsplit("один", 1)). Полезно знать как пару к этому вопросу.
Ваш ответ
Войдите, чтобы ответить на вопрос.