← Все вопросы

Как заменить только первое вхождение подстроки, а не все?

Задан 9 месяцев назад741 просмотров3 ответа
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)). Полезно знать как пару к этому вопросу.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект