Я хочу удалить все пробелы из строки, на обоих концах и между словами.
У меня есть этот код на Python:
defmy_handle(self): sentence = ' hello apple ' sentence.strip()
Но это устраняет пробелы только с обеих сторон строки. Как мне удалить все пробелы?
Переведено автоматически
Ответ 1
Если вы хотите удалить начальные и конечные пробелы, используйте str.strip():
>>> " hello apple ".strip() 'hello apple'
Если вы хотите удалить все символы пробела, используйте str.replace()(ПРИМЕЧАНИЕ: это удаляет только “обычный” символ пробела ASCII ' ' U+0020 но не любые другие пробелы):
>>> " hello apple ".replace(" ", "") 'helloapple'
Если вы хотите удалить дублирующиеся пробелы, используйте str.split(), за которым следует str.join():
>>> " ".join(" hello apple ".split()) 'hello apple'
Ответ 2
Чтобы удалить только пробелы, используйте str.replace:
sentence = sentence.replace(' ', '')
Чтобы удалить все символы пробела (пробел, табуляцию, перевод строки и так далее), вы можете использовать split then join:
sentence = ''.join(sentence.split())
или регулярное выражение:
import re pattern = re.compile(r'\s+') sentence = re.sub(pattern, '', sentence)
Если вы хотите удалить пробелы только с начала и конца, вы можете использовать strip:
sentence = sentence.strip()
Вы также можете использовать lstrip для удаления пробелов только из начала строки и rstrip для удаления пробелов из конца строки.
Ответ 3
Альтернативой является использование регулярных выражений и сопоставление этих странных символов пробела. Вот несколько примеров:
Удалите ВСЕ пробелы в строке, даже между словами:
import re sentence = re.sub(r"\s+", "", sentence, flags=re.UNICODE)
Удалить пробелы в НАЧАЛЕ строки:
import re sentence = re.sub(r"^\s+", "", sentence, flags=re.UNICODE)
Удалить пробелы в КОНЦЕ строки:
import re sentence = re.sub(r"\s+$", "", sentence, flags=re.UNICODE)
Удалить пробелы как в НАЧАЛЕ, так и в КОНЦЕ строки:
import re sentence = re.sub("^\s+|\s+$", "", sentence, flags=re.UNICODE)
Удалить ТОЛЬКО ПОВТОРЯЮЩИЕСЯ пробелы:
import re sentence = " ".join(re.split("\s+", sentence, flags=re.UNICODE))
(Все примеры работают как в Python 2, так и в Python 3)
Ответ 4
"Пробел" включает в себя пробел, табуляцию и CRLF. Итак, элегантная и однострочная строковая функция, которую мы можем использовать, - это str.translate:
Python 3
' hello apple '.translate(str.maketrans('', '', ' \n\t\r'))