Рубрики
Без рубрики

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

В этой статье вы узнаете окончательный ответ на следующий вопрос: как устранить все пробелы из строки – на обоих концах, так и между словами? Сводка: Используйте строковые методы join (), разделения (), полосы (), rstrip (), lstrip () и или замены () – в определенные комбинации — для удаления любого пробела в данной строке. Самый простой способ удалить все пробелы … Как устранить все пробелы из строки? Читать далее “

Автор оригинала: Girish Rao.

В этой статье вы узнаете окончательный ответ на следующий вопрос:

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

Резюме: Используйте строковые методы Присоединяйтесь () , Сплит () , полоса () , RSTRIP () , lstrip () и или заменить () -В-определенные комбинации – удалить любой пробел в данной строке. Самый простой способ удалить все пробелы в строке – использовать Сплит () Функция для создания списка небесных слов, а затем соедините слова в списке разделений.

Официальный сайт Python предлагает краткое объяснение этих и других строковых методов для дальнейшей ссылки.

Примечание : Все приведенные ниже решения были проверены с использованием Python 3.8.5.

Проблема

Учитывая следующую строку переменную:

sentence = '\t\t hello    world \n'

Желаемый вывод

Манипулировать его, чтобы обеспечить следующий выход:

>>> 'helloworld'

Задний план

В Python, аналогично многим другим популярным языкам программирования, Строки просто массивы байтов, которые представляют Unicode символы. Аналогично базовым типам данных, таких как Логины , целые числа и плавает, струны один из самых важных Типы данных в языке программирования Python. Python предоставляет множество способов помощников, таких как Присоединяйтесь к () , Сплит () , полоса () , RSTRIP () , lstrip () и заменить () , чтобы манипулировать строковыми объектами. Использование таких строковых методов будет изучена ниже, чтобы решить проблему, описанную выше.

Метод 1: string.split () и string.join ()

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

sentence = '\t\t hello    world \n'

Примечание: Если один порезы и встает выше и получает синтаксисную ошибку в Python, вполне вероятно, потому что ' (I.e. Tick) Символ Unicode был изменен Google. Поэтому нужно убедиться, что правильный ' (галочка) или « (цитата) символ используется.

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

''.join(sentence.split())

Код в качестве запуска в Shell Python выглядит следующим образом:

>>> sentence = '\t\t hello    world \n'
>>> ''.join(sentence.split())
'helloworld'

Что здесь происходит?

По умолчанию str.split () Метод, без каких-либо аргументов, буду рассматривать и использовать последовательные пробелы пробеловных символов в качестве одного сепаратора. Если строка имеет ведущую или трейлинг пробела, расщепление будет сделано так, что в начале или конца пустой строки нет пустых строк. Так что происходит следующее, когда кто-то использует str.split () Метод на строковой переменной предложение С по умолчанию аргументы (то есть нет или ничего).

>>> sentence.split()
['hello', 'world']

Обратите внимание, как все персонажи пробелов были устранены вокруг слов Привет и Мир Отказ Обратите внимание, что слова были введены в Список считать. Этот результирующий список, который теперь передается на str.join ( потенциал ) Метод, который будет объединять все строки в ИТЕРИТЕЛЬНО и вернуть строковый объект. Обратите внимание, что строковый объект (например, вариабельная S2 или '' , ниже), на котором работает метод соединения, будет использоваться в качестве A разделитель , чтобы присоединиться к всем строкам в списке ИТЕРИТЕЛЬНО Отказ

Рассмотрим следующий кодовый фрагмент, чтобы связать все вместе.

>>> sentence                        # This is the original string.
'\t\t hello    world \n'
>>> s1 = sentence.split()     #s1 is the resulting list iterable from the split method
>>> s1
['hello', 'world']
>>> s2 = ''                              # s2 is the dummy separator (i.e. an empty string)
>>> s2
''
>>> s3 = s2.join(s1)              # s3 is the desired result from joining elements in
>>> s3                                         # the s1 list iterable, using string s2 as a seperator
'helloworld'
>>> 

Далее давайте посмотрим, работает ли это решение на большей и более сложной строке:

>>> sentence = '''
... ## This is a curious case. Since the step is a -ve number all the indexing
... ## is done from the right side of the list. The start index is beyond the
... ## list, so the last letter '!' is included, the end index is a -ve number
... ## so the counting for the end index begins from the right side of the list.
... ## So the end of the list is the letter to the right of index -5 i.e. 'a'.
... ## Note that end index is excluded, so answer is '!ssa'
... '''
>>> 
>>> sentence
"\n## This is a curious case. Since the step is a -ve number all the indexing\n## is done from the right side of the list. The start index is beyond the\n## list, so the last letter '!' is included, the end index is a -ve number\n## so the counting for the end index begins from the right side of the list.\n## So the end of the list is the letter to the right of index -5 i.e. 'a'.\n## Note that end index is excluded, so answer is '!ssa'\n"
>>> 
>>> s2
''
>>> s3 = s2.join(sentence.split())
>>> 
>>> s3
"##Thisisacuriouscase.Sincethestepisa-venumberalltheindexing##isdonefromtherightsideofthelist.Thestartindexisbeyondthe##list,sothelastletter'!'isincluded,theendindexisa-venumber##sothecountingfortheendindexbeginsfromtherightsideofthelist.##Sotheendofthelististhelettertotherightofindex-5i.e.'a'.##Notethatendindexisexcluded,soansweris'!ssa'"
>>>

Мы снова видим здесь, что решение отлично работает на более длинной строке. Он избавился от всех белых пробелов в струнной переменной предложение Отказ Обратите внимание, что строковая переменная предложение это многострочная строка, которая создана с использованием '' ' ... '' ' (то есть тройной галочка) обозначения.

Следующие объяснения показывают другие более утомительные методы для удаления пробела. Они эффективны, но не такими практическими, как Метод 1 , для конкретной проблемы под рукой. Шаги, однако, являются общими и могут применяться в другом месте, для других замен.

Более сложный и утомительный способ удалить дубликат пробелов в строке, используя str.replace ( старый, новый ) метод, как показано ниже.

Код в качестве запуска в Shell Python выглядит следующим образом:

>>> sentence = '\t\t hello    world \n'
>>> sentence
'\t\t hello    world \n'
>>> 
>>> s1 = sentence.replace(' ', '')
>>> s1
'\t\thelloworld\n'
>>> s1.replace('\t', '')
'helloworld\n'
>>> s1
'\t\thelloworld\n'
>>> s2 = s1.replace('\t', '')
>>> s2
'helloworld\n'
>>> s3 = s2.replace('\n', '')
>>> s3
'helloworld'
>>>

Что здесь происходит?

str.replace ( старый, новый ) Метод заменит все вхождения подстроки Старый со строкой Новый и вернуть модифицированную копию исходного строкового объекта. Давайте посмотрим, как это работало в приведенном выше фрагменте кода.

В Метод 2 , строковая переменная предложение Один шаг сформируется за один раз, чтобы достичь желаемого результата. На первом шаге строка "" (I.e. Space Space Характер) устраняется за счет замены его "" (то есть ничего). Обратите внимание, что вкладка (то есть \ T ) и Новая линия (I.e. \ N ) Продолжать существовать в строковой переменной S1 Отказ

>>> sentence = '\t\t hello    world \n'
>>> sentence
'\t\t hello    world \n'
>>> 
>>> s1 = sentence.replace(' ', '')
>>> s1
'\t\thelloworld\n'

На следующем шаге "\ T" (то есть вкладка вкладка символ) устраняется за счет замены его "" (то есть ничего, опять). Обратите внимание, что Новая линия (то есть \ n ) все еще продолжает существовать в строковой переменной S2 Отказ

>>> s1
'\t\thelloworld\n'
>>> s2 = s1.replace('\t', '')
>>> s2
'helloworld\n'

На последнем шаге "\ N" (то есть. “” (то есть ничего, еще не снова). Этот последний шаг теперь дает желаемый результат в строковой переменной S3 Отказ

>>> s2
'helloworld\n'
>>> s3 = s2.replace('\n', '')
>>> s3
'helloworld'
>>>

Далее давайте посмотрим, работает ли это решение на большей и более сложной строке:

>>> sentence = '''
... ## This is a curious case. Since the step is a -ve number all the indexing
... ## is done from the right side of the list. The start index is beyond the
... ## list, so the last letter '!' is included, the end index is a -ve number
... ## so the counting for the end index begins from the right side of the list.
... ## So the end of the list is the letter to the right of index -5 i.e. 'a'.
... ## Note that end index is excluded, so answer is '!ssa'
... '''
>>> sentence
"\n## This is a curious case. Since the step is a -ve number all the indexing\n## is done from the right side of the list. The start index is beyond the\n## list, so the last letter '!' is included, the end index is a -ve number\n## so the counting for the end index begins from the right side of the list.\n## So the end of the list is the letter to the right of index -5 i.e. 'a'.\n## Note that end index is excluded, so answer is '!ssa'\n"
>>> 
>>> s1 = sentence.replace(' ', '')
>>> s1
"\n##Thisisacuriouscase.Sincethestepisa-venumberalltheindexing\n##isdonefromtherightsideofthelist.Thestartindexisbeyondthe\n##list,sothelastletter'!'isincluded,theendindexisa-venumber\n##sothecountingfortheendindexbeginsfromtherightsideofthelist.\n##Sotheendofthelististhelettertotherightofindex-5i.e.'a'.\n##Notethatendindexisexcluded,soansweris'!ssa'\n"
>>> s2 = s1.replace('\t', '')
>>> s2
"\n##Thisisacuriouscase.Sincethestepisa-venumberalltheindexing\n##isdonefromtherightsideofthelist.Thestartindexisbeyondthe\n##list,sothelastletter'!'isincluded,theendindexisa-venumber\n##sothecountingfortheendindexbeginsfromtherightsideofthelist.\n##Sotheendofthelististhelettertotherightofindex-5i.e.'a'.\n##Notethatendindexisexcluded,soansweris'!ssa'\n"
>>> s3 = s2.replace('\n', '')
>>> s3
"##Thisisacuriouscase.Sincethestepisa-venumberalltheindexing##isdonefromtherightsideofthelist.Thestartindexisbeyondthe##list,sothelastletter'!'isincluded,theendindexisa-venumber##sothecountingfortheendindexbeginsfromtherightsideofthelist.##Sotheendofthelististhelettertotherightofindex-5i.e.'a'.##Notethatendindexisexcluded,soansweris'!ssa'"
>>> 

Мы снова видим, что, хотя решение утомительно, по сравнению с Метод 1 , он продолжает отлично работать на более длинной строке. Он избавился от всех белых пробелов в струнной переменной предложение Отказ

Этот конечный метод является чисто образовательным. Он показывает еще один сложный и утомительный способ удалить дубликат пробелов в строке, используя str.replace ( старый, новый ) , str.lstrip ([chars]) и str.rstrip ([ chars ]) Методы, как показано ниже.

Код в качестве запуска в Shell Python выглядит следующим образом:

>>> sentence = '\t\t hello    world \n'
>>> sentence
'\t\t hello    world \n'
>>> 
>>> s1 = sentence.replace(" ", "")
>>> s1
'\t\thelloworld\n'
>>>
>>> s2 = s1.lstrip()
>>> s2
'Helloworld\n'
>>>
>>> s3 = s2.rstrip()
>>> s3
'helloworld'
>>> 

Что здесь происходит?

str.lstrip ([ chars ]) Метод возвращает модифицированную копию строкового объекта ул ...| С ведущими персонажами удалены. Удаленные символы указаны в наборе, представленном строкой Чарс Отказ Whitespace удаляется по умолчанию, если Chars не указан или IS Нет Отказ

Точно так же str.rstrip ([ chars ]) Метод возвращает модифицированную копию строкового объекта ул ...| с удаленными персоналами. Удаленные символы указаны в наборе, представленном строкой Чарс Отказ Whitespace удаляется по умолчанию, если Chars не указан или IS Нет Отказ

В методе 3 строковая переменная предложение Сформирован один шаг за раз, чтобы достичь желаемого результата (то есть аналогично методу 2). На первом шаге строка "" (I.e. Space Space Характер) устраняется за счет замены его "" (то есть ничего). Обратите внимание, что вкладка (то есть \ T ) и Новая линия (I.e. \ N ) Продолжать существовать в строковой переменной S1 Отказ

>>> sentence = '\t\t hello    world \n'
>>> sentence
'\t\t hello    world \n'
>>> 
>>> s1 = sentence.replace(" ", "")
>>> s1
'\t\thelloworld\n'

На следующем шаге "\ T" (I.e. There вкладка символ) устраняется префиксом, зачисляющей его (то есть str.lstrip () ). Обратите внимание, что Новая линия (то есть \ n ) продолжает существовать в строковой переменной S2 Отказ

>>> s1
'\t\thelloworld\n'
>>>
>>> s2 = s1.lstrip()
>>> s2
'Helloworld\n'

На последнем шаге "\ N" (I.e. overline roomline Персонаж) устраняется суффиксом, отчитывая его (I.e. str.rstrip () ). Этот последний шаг теперь дает желаемый результат в строковой переменной S3 Отказ

>>> s2
'Helloworld\n'
>>>
>>> s3 = s2.rstrip()
>>> s3
'helloworld'

Финктерская академия

Этот блог был доставлен вам Girish , студент Финктерская академия Отказ Вы можете найти его Профиль намного здесь Отказ

Справка

Все исследования для этой статьи в блоге было сделано с использованием Python Documents и общая база знаний Стек сдерживается и Финктерская академия Общины.