Как удалить пробелы из строки в Python
Введение
В этом руководстве представлены примеры различных методов, которые можно использовать для удаления пробелов из строки в Python.
Строка Python неизменяема, поэтому вы не можете изменить ее значение. Любой метод, который манипулирует строковым значением, возвращает новую строку.
В примерах в этом руководстве используется интерактивная консоль Python в командной строке для демонстрации различных методов удаления пробелов. В примерах используется следующая строка:
s = ' Hello World From DigitalOcean \t\n\r\tHi There '
Результат:
Output Hello World From DigitalOcean
Hi There
Эта строка содержит различные типы пробелов и символов новой строки, такие как пробел (
), табуляция (\t
), новая строка (\n
), и возврат каретки (\r
).
Удалить начальные и конечные пробелы с помощью метода strip()
Метод Python String strip()
удаляет начальные и конечные символы из строки. Символом по умолчанию для удаления является пробел.
Объявить строковую переменную:
- s = ' Hello World From DigitalOcean \t\n\r\tHi There '
Используйте метод strip()
, чтобы удалить начальные и конечные пробелы:
- s.strip()
Результат:
Output'Hello World From DigitalOcean \t\n\r\tHi There'
Если вы хотите удалить только начальные или конечные пробелы, вы можете использовать методы lstrip()
и rstrip()
.
Удалить все пробелы с помощью метода replace()
Вы можете использовать метод replace()
для удаления всех пробельных символов из строки, в том числе между словами.
Объявить строковую переменную:
- s = ' Hello World From DigitalOcean \t\n\r\tHi There '
Используйте метод replace()
, чтобы заменить пробелы пустой строкой:
- s.replace(" ", "")
Результат:
Output'HelloWorldFromDigitalOcean\t\n\r\tHiThere'
Удаление повторяющихся пробелов и символов новой строки с помощью методов join() и split()
Вы можете удалить все повторяющиеся пробелы и символы новой строки, используя метод join()
с методом split()
. В этом примере метод split()
разбивает строку на список, используя разделитель по умолчанию для любого символа пробела. Затем метод join()
снова объединяет список в одну строку с одним пробелом (
) между каждым словом.
Объявить строковую переменную:
- s = ' Hello World From DigitalOcean \t\n\r\tHi There '
Используйте методы join()
и split()
вместе, чтобы удалить повторяющиеся пробелы и символы новой строки:
- " ".join(s.split())
Результат:
Output'Hello World From DigitalOcean Hi There'
Удалить все пробелы и символы новой строки с помощью метода translate()
Вы можете удалить все пробелы и символы новой строки, используя метод translate()
. Метод translate()
заменяет указанные символы символами, определенными в словаре или таблице сопоставления. В следующем примере используется пользовательский словарь со строковой константой string.whitespace
, которая содержит все пробельные символы. Пользовательский словарь {ord(c): None for c в string.whitespace}
заменяет все символы в string.whitespace
на None
.
Импортируйте модуль string
, чтобы можно было использовать string.whitespace
:
- import string
Объявить строковую переменную:
- s = ' Hello World From DigitalOcean \t\n\r\tHi There '
Используйте метод translate()
, чтобы удалить все пробельные символы:
- s.translate({ord(c): None for c in string.whitespace})
Результат:
Output'HelloWorldFromDigitalOceanHiThere'
Удалить символы пробела с помощью регулярных выражений
Вы также можете использовать регулярное выражение для сопоставления символов пробела и удаления их с помощью функции re.sub()
.
В этом примере используется следующий файл regexspaces.py
, чтобы показать некоторые способы использования регулярных выражений для удаления пробельных символов:
import re
s = ' Hello World From DigitalOcean \t\n\r\tHi There '
print('Remove all spaces using regex:\n', re.sub(r"\s+", "", s), sep='') # \s matches all white spaces
print('Remove leading spaces using regex:\n', re.sub(r"^\s+", "", s), sep='') # ^ matches start
print('Remove trailing spaces using regex:\n', re.sub(r"\s+$", "", s), sep='') # $ matches end
print('Remove leading and trailing spaces using regex:\n', re.sub(r"^\s+|\s+$", "", s), sep='') # | for OR condition
Запустите файл из командной строки:
python3 regexspaces.py
Вы получите следующий вывод:
Remove all spaces using regex:
HelloWorldFromDigitalOceanHiThere
Remove leading spaces using regex:
Hello World From DigitalOcean
Hi There
Remove trailing spaces using regex:
Hello World From DigitalOcean
Hi There
Remove leading and trailing spaces using regex:
Hello World From DigitalOcean
Hi There
Заключение
В этом руководстве вы узнали о некоторых методах, которые можно использовать для удаления пробельных символов из строк в Python. Продолжайте изучать строки Python.