/
Вопросы и ответы
/
Python
/

Какой метод нужен для удаления пробелов в строке python?

Какой метод нужен для удаления пробелов в строке python?

4 года назад

Andrey Moshkov

Ответы

1

Для удаления пробелов в строке в Python можно использовать метод strip(). Этот метод удаляет пробелы и другие символы, которые находятся в начале и конце строки.

Пример использования метода strip():

1
2
s = "   Пример строки с пробелами   "
print(s.strip())  # Вывод: "Пример строки с пробелами"

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

1
2
3
s = "   Пример строки с пробелами   "
print(s.lstrip())  # Вывод: "Пример строки с пробелами   "
print(s.rstrip())  # Вывод: "   Пример строки с пробелами"

Также можно использовать метод replace() для замены пробелов на пустую строку:

1
2
s = "   Пример строки с пробелами   "
print(s.replace(" ", ""))  # Вывод: "Примерстрокаспробелами"

3 года назад

Olga Pejenkova

0

Если нужно удалить лишние пробелы в начале и конце строки, то достаточно использовать метод strip()

1
2
'Catch me      if    you can    '.strip()
# 'Catch me      if    you can'

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

1
2
3
movie = 'Catch me      if    you can    '
' '.join(movie.split())
# 'Catch me if you can'

4 года назад

Карина Абдуллаева

0

Какой метод нужен, зависит от того, какие пробелы убрать:

1
2
3
4
5
s = "  Catch me   if  you can  "

s.strip()             # 'Catch me   if  you can' — только по краям
s.replace(" ", "")    # 'Catchmeifyoucan' — все пробелы
" ".join(s.split())   # 'Catch me if you can' — лишние пробелы в один

Все варианты

ЗадачаКодРезультат для " a b "
Убрать по краямs.strip()'a b'
Убрать слеваs.lstrip()'a b '
Убрать справаs.rstrip()' a b'
Убрать все пробелыs.replace(" ", "")'ab'
Убрать все пробельные символы, включая \t и \n"".join(s.split())'ab'
Сжать несколько пробелов в один" ".join(s.split())'a b'

split() без аргументов делит строку по любым пробельным символам и выбрасывает пустые части. Поэтому " ".join(s.split()) заодно убирает пробелы по краям.

Для сложных случаев есть регулярные выражения:

1
2
import re
re.sub(r"\s+", " ", s).strip()  # 'Catch me if you can'

Строку нужно перезаписать

Строки в Python неизменяемые. Методы возвращают новую строку:

1
2
3
4
5
6
s = "  hello  "
s.strip()
print(s)        # '  hello  ' — не изменилась

s = s.strip()
print(s)        # 'hello'

Как убрать пробелы в print

print() ставит пробел между аргументами. Чтобы его не было, передайте sep="":

1
2
print("Итого:", 5, "руб")          # Итого: 5 руб
print("Итого:", 5, "руб", sep="")  # Итого:5руб

Или соберите строку через f-строку, пробелы будут только там, где вы их написали:

1
print(f"Итого:{5}руб")              # Итого:5руб

Строки и их методы разбирают в бесплатном курсе «Основы Python», регулярные выражения — на курсе «Регулярные выражения».

16 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845