В этой статье мы рассмотрим, как убрать символы с обоих концов строки в Python.
Встроенный String
является важной структурой Python и поставляется со
встроенным набором методов для упрощения работы с текстовыми данными.
Есть много ситуаций, в которых программист может захотеть удалить
ненужные символы, то есть удалить определенные символы в начале или в
конце строки.
Наиболее частым требованием является удаление пробелов (пробелов,
табуляции, символов новой строки и т. Д.) С обоих концов строки. Обычно
это происходит после импорта необработанных текстовых данных из файла,
базы данных, веб-службы или после принятия пользовательского ввода,
который может содержать опечатки в виде дополнительных пробелов. С этим
можно справиться, используя метод String.strip()
по умолчанию, как
показано здесь:
>>> orig_text = ' The cow jumped over the moon! \n'
>>> print(orig_text.strip())
The cow jumped over the moon!
>>>
Обратите внимание, что этот метод не изменяет исходное значение строки, то есть не меняет строку на месте. Он просто возвращает новую строку с удаленными пробелами на обоих концах. Мы можем проверить это, распечатав исходную строку:
>>> print(orig_text)
The cow jumped over the moon!
>>>
Метод strip
также позволяет нам указать, какие типы символов мы хотим
удалить. Это может быть полезно, если мы хотим удалить другие символы,
кроме пробелов. Для этого мы просто указываем символы для
String.strip()
:
>>> orig_text = '-----The cow jumped over the moon!$$$$$'
>>> print(orig_text.strip('-$'))
The cow jumped over the moon!
>>>
Это полезно для удаления символов в начале или в конце строки, которые использовались, например, для форматирования. Итак, если у вас есть строка в формате Markdown, вы можете легко удалить синтаксис заголовка следующим образом:
>>> md_text = '### My Header Here' # Denotes an H3 header in Markdown
>>> print(md_text.strip('# '))
My Header Here
>>>
Наконец, Python предоставляет способ удалить символы только с одной
стороны строки с помощью String.rstrip()
и String.lstrip()
. Эти
методы работают точно так же, как метод String.strip()
, но
String.rstrip()
удаляет символы только с правой стороны строки, а
String.lstrip()
удаляет символы только с левой стороны строки:
>>> orig_text = '*****The cow jumped over the moon!*****'
>>> print(orig_text.rstrip('*'))
*****The cow jumped over the moon!
>>> print(orig_text.lstrip('*'))
The cow jumped over the moon!*****
Еще раз мы можем распечатать исходную строку, чтобы убедиться, что эти операции не повлияли на нее:
>>> print(orig_text)
*****The cow jumped over the moon!*****
об авторе
Эта статья была написана Якобом Стопаком, консультантом по программному обеспечению и разработчиком, стремящимся помочь другим улучшить свою жизнь с помощью кода. Джейкоб является создателем Initial Commit - сайта, посвященного тому, чтобы помочь любознательным разработчикам узнать, как написаны их любимые программы. Его избранный проект помогает людям изучать Git на уровне кода.