Как удалять пробелы в Python и форматировать их


25 октября 2020


Удаление и форматирование пробелов в строках с Python

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

Из-за того что строки являются неизменяемыми объектам каждая операция удаления или замены символов создает новую строку. Что бы сохранить новую строку мы должны будем присвоить ее переменной.

 

Удаление пробелов в начале и конце строки со strip()

Для удаления пробелов в начале и конце строки можно использовать функцию strip(), как на примере ниже:

string = "  My name is \n    Alex "
string = string.strip()

Замена пробелов в строке с Python strip()

Для удаления символов в начале текста есть lstrip():

word = "  My name is \n    Alex "
word = word.lstrip()

Замена пробелов в строке с Python lstrip() слева

Противоположная операция - rstrip(), удалит символы только справа:

i = "  My name is \n    Alex "
i = i.rstrip()

Замена пробелов в строке с Python strip() справа 

 

Замена всех знаков с replace()

Когда нужно удалить все нужные символы используйте replace():

d = "  My name is \n    Alex "
d = d.replace(' ', '')

Замена всех пробелов в строке с Python replace()

В отличие от методов strip с replace можно заменить задвоенные символы: 

v = "  My name is \n    Alex "
v = v.replace('  ', '')

Замена задвоенных пробелов в строке с Python replace() 

 

Удаление с join и split

Если нужно удалить все пробелы и символы новой строки '\n' можно преобразовать строку в массив (используя пробелы как разделитель) и преобразовать массив обратно в строку уже добавив пробелы между значениями:

n = "  My name is \n    Alex "
n = n.replace('  ', '')

Замена пробелов в строке Python с join и split

 

Использование translate()

translate возвращает копию строки в которой все символы будут заменены в соответствии с таблицей. С помощью следующего способа эта операция пройдет с пробелами:

import string
s = ' word1 word2 word3'
s = s.translate({ord(c): None for c in string.whitespace})

Замена пробелов в строке Python с translate

 

Использование регулярных выражений

Используя регулярные выражения мы можем получить каждый из результатов полученных выше. Знак пробела, в регулярных выражениях, обозначается как '\s'. Знак '+' говорит об одном или множестве повторений символа. В примере ниже будут заменены все символы пробела:

import re

h = '  Hello world 1 2  3'
h = re.sub(r'\s+', '', h)

Замена пробелов в строке Python регулярными выражениями

Для замены указанных знаков в начале текста можно использовать знак '^':

import re

j = '  Hello world 1 2  3'
j = re.sub(r'^\s+', '', j)

Замена пробелов в строке Python регулярными выражениями в начале строки

Конец текста обозначает знак '$'. С помощью его мы заменим нужные символы в конце строки в следующем примере:

import re

string = '  Hello world 1 2  3   '
string = re.sub(r'\s+$', '', string)

Замена пробелов в строке Python регулярными выражениями в конце строки

Используя знак '|', который в регулярных выражения работает как 'or', мы сможем заменить символы в начале и конце:

import re

string = '  Hello world 1 2  3   '
string = re.sub(r'^\s+|\s+$', '', string)

Замена пробелов в строке Python регулярными выражениями в начале и конце строки 

...

Теги: #python #строки


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.