Как удалять пробелы в Python и форматировать их
В Python есть несколько методов удаления пробелов в строках. Методы могут быть использованы при удалении пробелов во всем тексте, начале или конце.
Из-за того что строки являются неизменяемыми объектам каждая операция удаления или замены символов создает новую строку. Что бы сохранить новую строку мы должны будем присвоить ее переменной.
Навигация по посту
- Удаление пробелов в начале и конце строки со strip()
- Замена всех пробелов с replace()
- Удаление с join и split
- Использование translate()
- Использование регулярных выражений
Удаление пробелов в начале и конце строки со strip()
Для удаления пробелов в начале и конце строки можно использовать функцию strip(), как на примере ниже:
string = " My name is \n Alex " string = string.strip()

Для удаления символов в начале текста есть lstrip():
word = " My name is \n Alex " word = word.lstrip()

Противоположная операция — rstrip(), удалит символы только справа:
i = " My name is \n Alex " i = i.rstrip()
Замена всех знаков с replace()
Когда нужно удалить все нужные символы используйте replace():
d = " My name is \n Alex " d = d.replace(' ', '')

В отличие от методов strip с replace можно заменить задвоенные символы:
v = " My name is \n Alex " v = v.replace(' ', '')
Удаление с join и split
Если нужно удалить все пробелы и символы новой строки ‘\n’ можно преобразовать строку в массив (используя пробелы как разделитель) и преобразовать массив обратно в строку уже добавив пробелы между значениями:
n = " My name is \n Alex " n = n.replace(' ', '')

Вам так же будет интересно:
Используем Python Pillow для вставки текста и изображения в картинку
Использование translate()
translate возвращает копию строки в которой все символы будут заменены в соответствии с таблицей. С помощью следующего способа эта операция пройдет с пробелами:
import string s = ' word1 word2 word3' s = s.translate()

Использование регулярных выражений
Используя регулярные выражения мы можем получить каждый из результатов полученных выше. Знак пробела, в регулярных выражениях, обозначается как ‘\s’. Знак ‘+’ говорит об одном или множестве повторений символа. В примере ниже будут заменены все символы пробела:
import re h = ' Hello world 1 2 3' h = re.sub(r'\s+', '', h)

Для замены указанных знаков в начале текста можно использовать знак ‘^’:
import re j = ' Hello world 1 2 3' j = re.sub(r'^\s+', '', j)

Конец текста обозначает знак ‘$’. С помощью его мы заменим нужные символы в конце строки в следующем примере:
import re string = ' Hello world 1 2 3 ' string = re.sub(r'\s+$', '', string)

Используя знак ‘|’, который в регулярных выражения работает как ‘or’, мы сможем заменить символы в начале и конце:
import re string = ' Hello world 1 2 3 ' string = re.sub(r'^\s+|\s+$', '', string)
Как убрать лишние пробелы при переносе строк?
Пытаюсь сделать вроде бы простую вещь — вместо нескольких функций print() сделать все в одной, печатая переменные в разных строках с помощью ‘\n’, но почему-то, начиная со 2й строки добавляется один пробел, который непонятно откуда возникает. Внутри скобок пробелов нет. В переменных — просто числа.
print(a,'\n',b,'\n',c,'\n',d)
В выводе получается так:
1 2 3 4
Откуда возникают пробелы и как их убрать?
Перемещено leave из general
utrack
11.04.21 13:36:40 MSK

print(‘\n’.join([a, b, c, d])
eternal_sorrow ★★★★★
( 11.04.21 13:38:31 MSK )

print(a, ‘\n’, b, ‘\n’, c, ‘\n’, d, sep=»)
eternal_sorrow ★★★★★
( 11.04.21 13:40:03 MSK )
Последнее исправление: eternal_sorrow 11.04.21 13:40:48 MSK (всего исправлений: 1)
Откуда возникают пробелы и как их убрать?
Напечатай в одну строку и посмотри, какой разделитель по умолчанию. Потом почитай доки на предмет того, как поменять разделитель.
kardjoe
( 11.04.21 13:41:11 MSK )

eternal_sorrow ★★★★★
( 11.04.21 13:42:14 MSK )
Ответ на: комментарий от kardjoe 11.04.21 13:41:11 MSK

какой разделитель по умолчанию
eternal_sorrow ★★★★★
( 11.04.21 13:43:45 MSK )
Ответ на: комментарий от kardjoe 11.04.21 13:41:11 MSK
Понятно, а я думал разделитель (пробел) ставится вручную, т.к. всегда до этого пробелы в print() сам проставлял. Не знаю даже, удобно это, автоматические пробелы, или нет…
utrack
( 11.04.21 13:46:50 MSK ) автор топика
Последнее исправление: utrack 11.04.21 13:53:08 MSK (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow 11.04.21 13:38:31 MSK
Спасибо, хорошие способы. Пока 2й наиболее понятен, буду пользоваться им.
utrack
( 11.04.21 13:52:37 MSK ) автор топика

От нежелания читать документацию.
Ты используешь одну (1) функцию. Что-то идёт не так. Вместо help(print) ты что делаешь? Открываешь ЛОР и строишь туда телегу размером с сам help(print) . В ответ получаешь, конечно же, разнообразные посылы в документацию.
Вот зачем так долго и сложно?
t184256 ★★★★★
( 11.04.21 14:25:02 MSK )
Последнее исправление: t184256 11.04.21 14:25:20 MSK (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow 11.04.21 13:40:03 MSK

print(a, b, c, d, sep=’\n’) тогда уж.
t184256 ★★★★★
( 11.04.21 14:27:27 MSK )
Последнее исправление: t184256 11.04.21 14:27:36 MSK (всего исправлений: 1)
Как удалить пробелы из строк в R (3 примера)
Вы можете использовать следующие методы для удаления пробелов из строк в R:
Способ 1: удалить все пробелы с помощью gsub()
updated_string
Способ 2: удалить все пробелы с помощью str_replace_all()
library (stringr) updated_string
Способ 3: удалить начальные и конечные пробелы с помощью str_trim()
library (stringr) #remove all trailing whitespace updated_string
В следующих примерах показано, как использовать каждый метод на практике.
Пример 1. Удаление всех пробелов с помощью gsub()
В следующем коде показано, как использовать функцию gsub() из базы R для удаления всех пробелов из заданной строки:
#create string my_string
Обратите внимание, что из строки удалены все пробелы.
Пример 2. Удаление всех пробелов с помощью функции str_replace_all()
В следующем коде показано, как использовать функцию str_replace_all() из пакета stringr в R для удаления всех пробелов из заданной строки:
library (stringr) #create string my_string
Обратите внимание, что из строки удалены все пробелы.
Пример 3. Удаление начальных и конечных пробелов с помощью str_trim()
В следующем коде показано, как использовать функцию str_trim() из пакета stringr в R для удаления всех начальных пробелов из заданной строки:
library (stringr) #create string with leading whitespace my_string
Обратите внимание, что все начальные пробелы были удалены.
В следующем коде показано, как использовать функцию str_trim() для удаления всех завершающих пробелов из заданной строки:
library (stringr) #create string with trailing whitespace my_string
Обратите внимание, что все конечные пробелы были удалены.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Удалить лишние пробелы в строке
Напишите процедуру, удаляющую лишние пробелы в строке.
Подскажите, пожалуйста,что не так в коде?
1 2 3 4 5 6 7 8 9 10
def prob(s): s1=s.split(' ') k = len(s1) for i in range(len(s1)): if s1[i]=='': continue else: s1.append(s1[i]) s1 = s1[k:] return(s1) s = input("Введите текст с множеством пробелов ", ) print(' ',prob(s1))
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Удалить из строки лишние пробелы
В общем, задача поставлена так: "Дана строка, состоящая из слов, разделенных пробелами. Напишите.
Удалить лишние пробелы из строки
Строковый тип данных. Задачи. Дан текст, слова в котором слова разделены одним или несколькими.
Удалить лишние пробелы между словами
Здравствуйте. Помогите, пожалуйста, с задачей: Написать программу на языке Python, реализующую.

Удалить лишние пробелы(регулярные выражения)
Мне нужно удалить только лишние пробелы с помощью регулярных выражений. У меня получилось так: s.
Автоматизируй это!
![]()
7054 / 4559 / 1207
Регистрация: 30.03.2015
Сообщений: 13,132
Записей в блоге: 29
shadder, смторя что считать лишними пробелами (два и более подряд?). Можно например вызвать strip()а потом замену двух пробелов на один. Проще и короче.
