Нужно написать функцию f, которая удаляет вторую строку из первой только при совпадении с её началом. Во всех остальных случаях первая строка остаётся неизменной.
Как удалить вторую строку из начала первой в Python?
Нужно написать функцию f, которая удаляет вторую строку из первой только при совпадении с её началом. Во всех остальных случаях первая строка остаётся неизменной.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нужно написать функцию f, которая удаляет вторую строку из первой только при совпадении с её началом. Во всех остальных случаях первая строка остаётся неизменной.
def f(s1: str, s2: str) -> str:
if s1.startswith(s2):
return s1[len(s2):]
return s1
print(repr(f('hello world', 'hello'))) # ' world'
print(repr(f('hello world', 'hola'))) # 'hello world'
print(repr(f('hello world hello!', 'hello'))) # ' world hello!'
Пустой префикс ничего не удаляет. Более длинная несовпадающая строка также не изменяет исходную.
В Python 3.9 и новее можно написать return s1.removeprefix(s2). Метод replace заменяет вхождения, а lstrip удаляет набор символов, поэтому они не подходят как прямая замена. Строковые методы Python