Python: руководство по методу strip()

Вступление

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

Методы обрезки – strip()

В Python методы обрезки способны удалять пробелы и определенные символы.

Существует три способа удаления пробелов или определенных символов из строк:

  • strip(chars) – метод удаляет как левую, так и правую стороны строки из упомянутых пробелов или символов.
  • lstrip(chars) – буква “l” в названии метода обозначает левую сторону, а значит удаляет пробелы или символы, упомянутые слева от входной строки.
  • rstrip(chars) – буква “r” в названии метода обозначает правую сторону. Она удаляет символы справа от входной строки.

Если нужно удалить символы из строки, нужно передать их в качестве аргумента методу, например, input.rstrip(“abc”).

Обрезаем/удаляем пробелы из строк

Теперь, когда мы поняли, что эти методы делают, рассмотрим некоторые примеры. У нас есть строка input и output. Переменная input обозначает строку как с конечными, так и с начальными пробелами, в то время как строка output – шаблон, который мы можем использовать для выделения этих пробелов:

# trim.py
input = "   Uproger   "
output = "|{}|"
# Убираем пробелы слева
print("lstrip() Output:", output.format(input.lstrip()))
# Убираем пробелы справа
print("rstrip() Output:", output.format(input.rstrip()))
# Убираем пробелы с обоих сторон
print(" strip() Output:", output.format(input.strip()))

Результат будет следующим:

$ python trim.py
lstrip() Output: |Uproger   |
rstrip() Output: |   Uproger|
 strip() Output: |Uproger|

Обрезаем/удаляем специальные символы из строк

Кроме пробелов часто удаляются определенные символы. Давайте передадим символьный аргумент методу strip():

# trim_chars.py
input = "   ~~ Uproger ~~   "
output = "|{}|"
# Удаляем пробелы слева
print("lstrip() Output:", output.format(input.lstrip("~ ")))
# Удаляем пробелы справа
print("rstrip() Output:", output.format(input.rstrip("~ ")))
# Удаляем пробелы с обоих сторон
print(" strip() Output:", output.format(input.strip("~ ")))

Мы передали тильду (“~ “), а также пробел в качестве аргументов метода strip(), удалив их слева, справа и с обеих сторон строки. Стоит отметить, что их порядок не имеет значения и что метод strip() не выполняет сопоставление с образцом для их удаления.

Результат:

$ python trim_chars.py
lstrip() Output: |Uproger ~~   |
rstrip() Output: |   ~~ Uproger|
 strip() Output: |Uproger|

Используем strip() в Pandas Series

Мы также можем использовать методы strip() для Pandas Series. Таким образом, мы удалим пробелы и символы. Следует отметить, что ряд необходимо преобразовать в ряд строк, прежде чем выполнять операцию strip().

Рассмотрим следующий сценарий:

# strip_series.py
import pandas as pd

s = pd.Series(['1. Cell1.  ~', '2. Cell2!\n'])
print("Before strip():\n", s)
print("\nAfter strip():\n", s.str.strip('.\n!~ '))

Так мы создали серию с ячейками, содержащими специальные символы и конечные пробелы. С помощью series.str мы выполним метод для каждого элемента серии. Учитывая, что это строки, мы можем применить любой строковый метод.

При этом мы можем легко применить strip() для каждого элемента последовательности:

$ python strip_series.py
Before strip()
 0    1. Cell1.  ~
1     2. Cell2!\n
dtype: object
 
After strip()
 0    1. Cell1
1    2. Cell2
dtype: object

Заключение

Удалить (или обрезать) символы из строки может быть полезно при очистке наборов данных, текстовых файлов с несколькими строками или даже ответов API. Базовые, но мощные методы Python могут работать даже с Pandas Series.

Ответить