Как удалить вторую строку из начала первой в Python?

Нужно написать функцию f, которая удаляет вторую строку из первой только при совпадении с её началом. Во всех остальных случаях первая строка остаётся неизменной.

Короткий ответ

Что ответить на собеседовании

Нужно написать функцию 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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку