Как Удалить Префикс или Суффикс из Строки в Python

При работе со строками в Python вам часто может потребоваться удалить префикс или суффикс. Например, имена файлов могут начинаться с определенной строки, и вы хотите удалить этот префикс при переименовании файлов. Аналогично, вы можете захотеть удалить обращения, такие как 'Mr.' из имени.

В этом учебнике вы научитесь удалять префикс или суффикс из строки в Python. Существует множество различных способов решения этой задачи. Python 3.9 значительно упростил этот процесс благодаря специализированным методам строк. Однако, если вы не используете Python 3.9, не волнуйтесь! Этот учебник предоставит вам полное понимание того, как убрать префикс и суффикс из строки в Python!

К концу этого учебного пособия вы научитесь следующему:

  • Как использовать Python для удаления префикса или суффикса из строки, используя специальные строковые методы

  • Как использовать нарезку строк для удаления префикса или суффикса

Оглавление

Как удалить префикс из строки в Python

Как лучше всего удалить префикс из строки в Python?

Если вы используете Python версии 3.9 или более поздней, лучший способ удалить суффикс из строки в Python - использовать метод .removeprefix(). Если вы работаете с более ранней версией Python, лучший способ - это сочетание метода .startswith() со срезом строки.

В Python существует два основных метода для надежного удаления префикса из строки. Несмотря на наличие множества других методов в интернете, на мой взгляд, они не работают надежно. Многие из других методов не так интуитивно понятны или не работают столь надежно.

Давайте рассмотрим, как удалить префикс, используя версии Python 3.9 или более поздние.

Как удалить префикс из строки Python с помощью метода removeprefix()

Python версии 3.9 представил новый строковый метод removeprefix(), который позволяет удалять указанный префикс из строки.

Метод был введен из-за поведения других методов, таких как .lstrip(), которые приводили к неожиданному поведению. PEP 616 Python представил этот метод, чтобы помочь прояснить поведение для многих пользователей.

Давайте рассмотрим, как удалить префикс, используя метод

# Удаление префикса строки с помощью метода str.removeprefix()
text = 'https://bemind.gitbook.io'
without_prefix = text.removeprefix('https://')

print('До: ', text)
print('После: ', without_prefix)

# Возвращает:
# До:  https://bemind.gitbook.io
# После:  bemind.gitbook.io

В приведенном выше блоке кода мы видим, что изначально строка содержала префикс https://. С помощью метода str.removeprefix() нам удалось передать префикс строки, который мы хотели удалить.

Имейте в виду, что строки в Python неизменяемы. В приведенном выше примере мы присвоили строку новой переменной. Однако мы также можем просто присвоить список обратно самому себе.

Как удалить префикс из строки Python с помощью нарезки строк startswith()

В версиях Python, предшествующих версии 3.9, метод str.removeprefix() не был доступен. Если вы работаете со старой версией Python, вам потребуется найти другой способ удаления префикса.

Под капотом Python фактически использует очень простую функцию для создания метода .removeprefix(). Мы можем легко воссоздать этот метод, чтобы удалить префикс в более старых версиях Python. Давайте посмотрим, как этот метод написан, преобразовав его в стандартную функцию:

# Функция для удаления префикса в Python
def removeprefix(text, prefix):
    if text.startswith(prefix):
        return text[len(prefix):]
    else:
        return text

Давайте разберем, что делает приведенная выше функция.

  1. Функция removeprefix() принимает два аргумента:

    • Строка, которую мы хотим изменить

    • Префикс, который мы хотим удалить

  2. Мы используем метод .startswith() чтобы проверить, начинается ли строка с префикса

  3. Если это так, мы вырезаем строку, начиная с первого символа после префикса и до конца строки

  4. Если нет, возвращаем всю строку

Теперь, когда у вас есть хорошее понимание того, как эта функция работает, давайте посмотрим, как мы можем использовать её для удаления префикса из строки в Python:

# Удаление префикса из строки с помощью пользовательской функции
def removeprefix(text, prefix):
    if text.startswith(prefix):
        return text[len(prefix):]
    else:
        return text

text = 'https://bemind.gitbook.io'
new_text = removeprefix(text, 'https://')

print('До: ', text)
print('После: ', new_text)

# Возвращает:
# До:  https://bemind.gitbook.io
# После:  bemind.gitbook.io

В приведенном выше блоке кода мы использовали нашу собственную функцию для удаления префикса из строки. Имейте в виду, что это фактически та же функция, которую Python использует под капотом. Благодаря этому мы можем быть уверены, что это безопасный и эффективный способ удаления префикса.

Давайте теперь рассмотрим, как удалить суффикс из строки в Python.

Как удалить суффикс из строки в Python

Как лучше всего удалить суффикс из строки в Python?

Если вы используете Python версии 3.9 или выше, лучший способ удалить суффикс из строки в Python - использовать метод .removesuffix(). Если вы работаете с более старой версией Python, лучше всего сочетать метод .endswith() с срезом строки.

Существует два простых и надежных способа удаления суффикса из строки. Несмотря на то что существует бесчисленное множество различных методов достижения этой цели, эти два способа представляют собой безопасные, надежные и эффективные методы удаления суффикса.

Как удалить суффикс из строки Python с помощью Removesuffix()

Подобно методу str.removeprefix(), в Python 3.9 был введен новый строковый метод removesuffix(), который используется для удаления суффикса из строки. Поскольку метод str.rstrip() приводил к непредвиденному поведению, Python ввел этот метод для упрощения работы.

Давайте посмотрим, как мы можем использовать метод removesuffix() в Python:

# Удаление суффикса из строки с помощью метода str.removesuffix()
text = 'bemind.gitbook.io'
new_text = text.removesuffix('.io')

print('До: ', text)
print('После: ', new_text)

# Возвращает:
# До:  bemind.gitbook.io
# После:  bemind.gitbook

Мы можем видеть, насколько легко было удалить суффикс с помощью метода строки removesuffix(). Метод ясен и целенаправлен – позволяя читателю вашего кода точно понимать, для чего он предназначен.

Поскольку этот метод недоступен в версиях, старше Python 3.9, вам потребуется использовать другой подход, если вы работаете с более старыми версиями.

Как удалить суффикс из строки Python с помощью нарезки строк и Endwith()

Аналогично методу .removeprefix(), Python использует очень простую функцию для создания метода .removesuffix(). Мы можем просто воссоздать этот метод, чтобы удалить суффикс из строки.

Давайте посмотрим, как написан этот метод, преобразовав его в стандартную функцию:

# Написание функции для удаления суффикса в Python
def removesuffix(text, suffix):
    if text.endswith(suffix):
        return text[:-len(suffix)]
    else:
        return text

Давайте рассмотрим, как работает эта функция, поскольку она немного отличается от нашей предыдущей функции для удаления префикса:

  1. Функция removesuffix() принимает два аргумента:

    1. Строку, которую мы хотим изменить, и

    2. Суффикс, который мы хотим удалить

  2. Мы используем метод .endswith() чтобы проверить, заканчивается ли строка суффиксом

  3. Если это так, мы срезаем строку с начала до отрицательного индекса, равного длине суффикса

  4. Если нет, мы возвращаем всю строку

Теперь, когда у вас есть хорошее понимание того, как работает эта функция, давайте посмотрим, как мы можем использовать её для удаления суффикса из строки в Python:

# Удаление суффикса из строки с помощью пользовательской функции
def removesuffix(text, suffix):
    if text.endswith(suffix):
        return text[:-len(suffix)]
    else:
        return text


text = 'bemind.gitbook.io'
new_text = removesuffix(text, '.io')

print('До: ', text)
print('После: ', new_text)

# Возвращает:
# До:  bemind.gitbook.io
# После:  bemind.gitbook

В приведенном выше блоке кода мы использовали нашу пользовательскую функцию для удаления суффикса из строки. Поскольку это тот же метод, который использует Python "под капотом", мы можем быть уверены, что это безопасный и эффективный способ удаления префикса.

Заключение

Владение навыками работы со строками и их изменения в Python является важным умением. Оно находит применение в самых разных задачах, от переименования файлов до очистки текста для анализа. В этом учебном пособии вы узнали, как удалить суффикс или префикс из строки в Python

Сначала вы научились удалять префикс, используя как специализированные строковые методы, так и создавая пользовательские функции. Затем вы изучили, как удалять суффикс, снова используя специализированный метод и пользовательскую функцию. Хотя другие учебные материалы могут показывать множество различных способов выполнения этих задач, представленные методы либо встроены, либо обеспечивают безопасное, последовательное поведение.

Дополнительные ресурсы

Чтобы узнать больше о схожих темах, ознакомьтесь с нижеприведенными руководствами:

  • Как удалить первый или последний символ из строки Python

  • Строка Python содержит: проверьте, содержит ли строка подстроку

  • Строка Python содержит: проверьте, содержит ли строка подстроку

Last updated