Манипуляции с пробелами в текстовых данных Python

Раздел: Основы Python -> Строки

Основные операции с пробелами в строке

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

Для удаления лишних пробелов внутри строки часто применяется связка split() и join(). Она разбивает строку по любому количеству пробельных символов и собирает её заново с одним пробелом между словами.


s = 'Python    пробел   в   строке'
result = ' '.join(s.split())
print(result)

вывести номер строки python (вывод номера строки в python)

Python пробел в строке

вывести первый символ строки python (вывести первый символ строки в python)

Такой способ подходит для текста, в котором не нужно сохранять переносы строк и табуляцию. split() без аргумента обрабатывает все пробельные символы.

Как вставить пробел между словами или символами?

Для соединения элементов списка с нужным разделителем используется метод join(). Если добавить строку из одного пробела, элементы склеиваются с интервалом.


words = ['Python', 'пробел', 'строка']
line = ' '.join(words)
print(line)

Python заменить число (замена числа в python (например, в строке))

Python пробел строка

Python часть текста (извлечение подстроки из строки в python)

Как добавить пробелы вокруг строки для выравнивания?

Методы ljust(), rjust() и center() дополняют строку пробелами до указанной ширины.


word = 'Python'
print('[' + word.ljust(10) + ']')
print('[' + word.rjust(10) + ']')
print('[' + word.center(10) + ']')

Python последнее слово в строке (извлечение последнего слова из строки в python)

[Python    ]
[    Python]
[  Python  ]

индекс элемента строки python (получение индекса символа или подстроки в строке python)

Как заменить несколько пробелов одним?

С помощью регулярного выражения re.sub() можно заменить последовательности из двух и более пробелов на один.


import re
text = 'Текст  с   большим     количеством пробелов'
clean = re.sub(r' {2,}', ' ', text)
print(clean)

Print split python (использование split с print в python)

Текст с большим количеством пробелов

Python новая строка (использование символа новой строки в python)

Как удалить пробелы в начале и конце строки?

Метод strip() убирает пробелы и другие пробельные символы с краёв строки. Для удаления только с начала используется lstrip(), только с конца rstrip().


value = '   Пробел удалён   '
print(value.strip())
print(value.lstrip())
print(value.rstrip())

Python количество пробелов (количество пробелов в строке python)

Пробел удалён
Пробел удалён   
   Пробел удалён

число цифр python (количество цифр числа в python)

Какие ошибки возникают при работе с пробелами?

Частая ошибка состоит в том, что метод split() применяется с аргументом ' ', и тогда строка с табуляцией или двойными пробелами обрабатывается неправильно. 'a b'.split(' ') вернёт список с пустым элементом.


text = 'a  b'
print(text.split(' '))
print(' '.join(text.split(' ')))

Python string index (метод str.index в python)

['a', '', 'b']
a  b

метод replace python (метод replace в python)

При попытке удалить из строки все пробелы без сохранения видимости слов используются странные проверки. Достаточно применить replace(' ', '') или генератор с условием char != ' '.


s = 'пробел в конце '
print(s.replace(' ', ''))
print(''.join(c for c in s if c != ' '))

Strip строки python (метод strip для строк в python)

пробелвконце
пробелвконце
- перенос python (перенос строки в python)
- сколько чисел в строке python (подсчёт количества чисел в строке в python)
- Python найти строку (поиск подстроки в строке python)

Дополнительные примеры содержат более редкие приёмы работы с пробелами. Каждый фрагмент показывает результат выполнения.

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

Пример

data = 'Строка\tс  пробелами\nи переносами'
no_space = ''.join(data.split())
print(no_space)
Строкаспробеламиипереносами

Удаление только обычных пробелов. Функция filter() пропускает символы, которые не равны ' '.

Пример

s = 'P y t h o n'
result = ''.join(filter(lambda ch: ch != ' ', s))
print(result)
Python

Нормализация текста с регулярным выражением. Выражение \s+ находит все группы пробельных символов и заменяет их на один пробел. Метод strip() убирает пробелы по краям.

Пример

import re
text = '   Несколько   слов\t\tс пробелами\n\nи строками  '
clean = re.sub(r'\s+', ' ', text).strip()
print(clean)
Несколько слов с пробелами и строками

Подсчёт количества обычных пробелов. Метод count() принимает строку и возвращает число вхождений.

Пример

phrase = 'Пробел в строке Python'
print(phrase.count(' '))
3

Выравнивание методом format(). Спецификаторы <, > и ^ задают положение текста в поле фиксированной ширины.

Пример

print('|' + '{:<10}'.format('Python') + '|')
print('|' + '{:>10}'.format('Python') + '|')
print('|' + '{:^10}'.format('Python') + '|')
|Python    |
|    Python|
|  Python  |

Выравнивание f-строкой. Ширина и направление выравнивания записываются после имени переменной.

Пример

name = 'Python'
print(f'|{name:<10}|')
print(f'|{name:>10}|')
print(f'|{name:^10}|')
|Python    |
|    Python|
|  Python  |

Разделение строки с сохранением пробелов. Если в регулярном выражении указать захватывающую группу, re.split() вернёт и разделители.

Пример

import re
text = 'одно  два   три'
parts = re.split(r'(\s+)', text)
print(parts)
['одно', '  ', 'два', '   ', 'три']

Замена групп пробелов другим разделителем. Регулярное выражение \s+ преобразует непрерывные серии пробелов и табуляций в один символ.

Пример

import re
text = 'a   b\t\tc'
result = re.sub(r'\s+', ';', text.strip())
print(result)
a;b;c

Пробел в строке Python - comments

En
Python пробел в строке (python)