Короткий ответ
Да, убрать все пробелы из строки можно несколькими способами: связкой ''.join(s.split()), методом replace(' ', '') или списковым включением, отфильтровывающим пробельные символы.
Как это работает подробнее
Выбор способа зависит от того, что именно нужно сделать с пробелами: удалить полностью, снять по краям или схлопнуть серии.
- Полное удаление.
split()без аргумента режет строку по любым пробельным символам, а''.join(...)склеивает слова без разделителя — все пробелы исчезают. - Замена.
replace(' ', '')заменяет каждый пробел на пустую строку — подходит, когда нужно убрать только обычные пробелы. - Фильтрация. Включение
''.join(c for c in s if c != ' ')оставляет все символы, кроме пробела. - Края и схлопывание.
strip(),lstrip()иrstrip()убирают пробелы с концов строки, а' '.join(s.split())заменяет серии пробелов одним.
Пример кода
Три способа удалить все пробелы
s = 'aaa bbb ccc ddd eee'
# Способ 1: split + join
print(''.join(s.split())) # 'aaabbbcccdddeee'
# Способ 2: replace
print(s.replace(' ', '')) # 'aaabbbcccdddeee'
# Способ 3: list comprehension
print(''.join(c for c in s if c != ' ')) # 'aaabbbcccdddeee'Что использовать на практике
- Очистка ввода. При обработке пользовательского ввода, текстовых файлов и внешних данных удаляй лишние пробелы через
split()иjoin(). - Только края. Если пробелы нужно убрать лишь по краям строки, применяй
strip(),lstrip()илиrstrip(). - Схлопывание. Чтобы заменить несколько подряд идущих пробелов одним, используй
' '.join(s.split()). - Другие разделители. Тот же приём с
split()иjoin()работает и с другими разделителями, не только с пробелом.
Подводные камни
- Разные пробелы. Метод
replace(' ', '')не уберёт табуляции и иные пробельные символы, аsplit()без аргумента справится с любыми. - Слепые замены. Полное удаление пробелов внутри слов может испортить данные — сначала убедись, что убрать нужно именно все пробелы.
- Пустой результат. Если строка состояла только из пробелов, после удаления получится пустая строка — учитывай это при проверках.
Как отвечать на собеседовании
- Ответь, что да, пробелы удалить можно → приведи основной способ
''.join(s.split())→ покажи альтернативы:replace(' ', '')и списковое включение → отметь разницу задач: убрать всё, снять по краям черезstrip()или схлопнуть серии пробелов через' '.join(s.split()).