Python удалить все пробелы

Мне нужно удалить пробелы из строки в python. Например.

Чтобы удалить все типы символов пробела, используйте str.translate :

Вы можете заменить все пробелы функцией string.replace() :

Или любые белые шапки (включая и
) с регулярным выражением:

Имейте в виду, что в строках python неизменяемы, а функция replace string возвращает строку с замененным значением. Если вы не выполняете инструкцию в оболочке, а внутри файла,

Это заменит все белые пробелы в строке. Если вы хотите заменить только первые n пробелов,

Одна строка кода для удаления всех лишних пробелов до, после и внутри предложения:

  1. Разделите всю строку в список.
  2. Фильтровать пустые элементы из списка.
  3. Не присоединяйся к остальным элементам

Вы можете заменить несколько пробелов на желаемый шаблон, используя следующие способы. Здесь ваш шаблон пустой строки.

198972 просмотра

8 ответа

6909 Репутация автора

Как удалить все пробелы в строке python? Например, я хочу, чтобы строка strip my spaces была включена stripmyspaces , но я не могу этого сделать с помощью strip() :

Ответы (8)

2 плюса

8148 Репутация автора

Попробуйте регулярное выражение re.sub . Вы можете искать все пробелы и заменять пустой строкой.

s в вашем шаблоне будут сопоставляться пробельные символы, а не просто пробелы (вкладки, новые строки и т. д.). Вы можете прочитать больше об этом в руководстве .

8 плюса

38266 Репутация автора

Самое простое — заменить:

Альтернативно, используйте регулярное выражение:

Автор: carl Размещён: 18.09.2010 12:48

40 плюса

3513 Репутация автора

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

Читайте также:  Advanced configuration and power interface driver

236 плюса

Репутация автора

Воспользовавшись поведением str.split без параметра sep:

Если вы просто хотите удалить пробелы вместо всех пробелов:

Преждевременная оптимизация

Несмотря на то, что эффективность не является основной целью — писать четкий код — вот некоторые начальные тайминги:

Обратите внимание, что регулярное выражение кэшируется, поэтому оно не так медленно, как вы себе представляете. Компиляция его заранее помогает некоторым, но на практике это будет иметь значение, если вы будете называть это много раз:

Несмотря на то, что re.sub на 11.3x медленнее, помните, что ваши узкие места, безусловно, находятся в другом месте. Большинство программ не заметили разницы между любым из этих трех вариантов.

26 плюса

4433 Репутация автора

С другой стороны,

И вот версия Python3:

2 плюса

126 Репутация автора

1 плюс

114 Репутация автора

Как уже упоминал следующий код Roger Pate, я работал:

Я использую Jupyter Notebook для запуска следующего кода:

плюса

1 Репутация автора

Удалить начальные пробелы в Python

string1 = "Это тестовая строка для удаления ведущего пространства" print string1 print string1.lstrip ()

Удаление конечных или конечных пространств в Python

string2 = "Это тестовая строка, чтобы вырезать конечное пространство" print string2 print string2.rstrip ()

Удалите белые области с начала и конца строки в Python

string3 = "Это тестовая строка для удаления ведущего и конечного пробела" print string3 print string3.strip ()

Удалить все пробелы в python

string4 = "Это тестовая строка для проверки всех пробелов" print string4 print string4.replace ("", "")

408 Kalanamith [2011-11-25 16:51:00]

Я хочу удалить все пробелы из строки, с обоих концов, и между словами.

У меня есть этот код Python:

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

Читайте также:  Stdio h нет такого файла или каталога

python trim removing-whitespace

8 ответов

904 Решение Cédric Julien [2011-11-25 16:56:00]

Если вы хотите удалить начальные и конечные пробелы, используйте str.strip() :

Если вы хотите удалить все пробелы, используйте str.replace() :

Если вы хотите удалить дублированные пробелы, используйте str.split() :

165 Mark Byers [2011-11-25 16:54:00]

Чтобы удалить только пробелы, используйте str.replace :

Чтобы удалить все пробельные символы (пробел, табуляция, новая строка и т.д.), вы можете использовать split , затем join :

или регулярное выражение:

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

Вы также можете использовать lstrip для удаления пробелов только с начала строки, а rstrip удалить пробел из конца строки.

Если вы также хотите удалить все другие странные символы пробелов, которые существуют в юникоде, вы можете использовать re.sub с аргументом re.UNICODE:

. потому что вы действительно хотите сохранить эти странные символы Юникода?

22 MaK [2015-11-28 06:36:00]

Пробелы содержат пробел, вкладки и CRLF. Таким образом, элегантная и однострочная строковая функция, которую мы можем использовать, — переводить. (Удивленный никто не упоминал об этом!)

‘ hello apple’.translate(None, ‘

‘)

ИЛИ, если вы хотите быть тщательным

13 wal-o-mat [2011-11-25 16:56:00]

Для удаления пробелов с начала и конца используйте strip .

MaK уже указал метод вышеперечисленного. И этот вариант работает с Python 3 (см. этот Q & A).

strip делает rstrip и lstrip (удаляет передние и конечные пробелы, вкладки, возвращает и формирует каналы, но не удаляет их в середине строки)

если вы заменяете только пробелы и вкладки, вы можете получить скрытый CRLF, который, по-видимому, соответствует тому, что вы ищете, но не то же самое.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *