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.