Поиск по сайту:

Как удалить пробелы из строки в 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() удаляет начальные и конечные символы из строки. Символом по умолчанию для удаления является пробел.

Объявить строковую переменную:

  1. s = ' Hello World From DigitalOcean \t\n\r\tHi There '

Используйте метод strip(), чтобы удалить начальные и конечные пробелы:

  1. s.strip()

Результат:

Output
'Hello World From DigitalOcean \t\n\r\tHi There'

Если вы хотите удалить только начальные или конечные пробелы, вы можете использовать методы lstrip() и rstrip().

Удалить все пробелы с помощью метода replace()

Вы можете использовать метод replace() для удаления всех пробельных символов из строки, в том числе между словами.

Объявить строковую переменную:

  1. s = ' Hello World From DigitalOcean \t\n\r\tHi There '

Используйте метод replace(), чтобы заменить пробелы пустой строкой:

  1. s.replace(" ", "")

Результат:

Output
'HelloWorldFromDigitalOcean\t\n\r\tHiThere'

Удаление повторяющихся пробелов и символов новой строки с помощью методов join() и split()

Вы можете удалить все повторяющиеся пробелы и символы новой строки, используя метод join() с методом split(). В этом примере метод split() разбивает строку на список, используя разделитель по умолчанию для любого символа пробела. Затем метод join() снова объединяет список в одну строку с одним пробелом ( ) между каждым словом.

Объявить строковую переменную:

  1. s = ' Hello World From DigitalOcean \t\n\r\tHi There '

Используйте методы join() и split() вместе, чтобы удалить повторяющиеся пробелы и символы новой строки:

  1. " ".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:

  1. import string

Объявить строковую переменную:

  1. s = ' Hello World From DigitalOcean \t\n\r\tHi There '

Используйте метод translate(), чтобы удалить все пробельные символы:

  1. 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.