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



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



например:



" Hello " --> "Hello"
" Hello" --> "Hello"
"Hello " --> "Hello"
"Bob has a cat" --> "Bob has a cat"
842   7  

7 ответов:

только одно пространство, или все такие пространства? Если второе, то строки уже есть .strip() способ:

>>> ' Hello '.strip()
'Hello'
>>> ' Hello'.strip()
'Hello'
>>> 'Bob has a cat'.strip()
'Bob has a cat'
>>> '          Hello        '.strip()  # ALL spaces at ends removed
'Hello'

Если вам нужно только удалить один пробел, однако, вы можете сделать это с:

def strip_one_space(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s

>>> strip_one_space("   Hello ")
'  Hello'

внимание:str.strip() удаляет также другие пробелы (например, вкладки и новые строки). Чтобы удалить только пробелы, можно указать символ для удаления в качестве аргумента strip, например:

>>> "  Hello\n".strip(" ")
'Hello\n'

как указано в ответах выше

myString.strip()

удалит все начальные и конечные пробелы, такие как \n, \r, \t, \f, пробел.

для большей гибкости используйте следующее

  • удаляет только ведущий пробельных символов: myString.lstrip()
  • удаляет только трейлинг пробельных символов: myString.rstrip()
  • выводит конкретные пробельных символов: myString.strip('\n') или myString.lstrip('\n\r') или myString.rstrip('\n\t') и так далее.

более подробная информация доступна в docs

strip также не ограничивается пробелами:

# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')

удалить все начальные и конечные пробелы в myString:

myString.strip()

вы хотите strip ():

myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ]

for phrase in myphrases:
    print phrase.strip()

Я хотел удалить слишком много пробелов в строке (также между строкой, а не только в начале или конце). Я сделал это, потому что я не знаю как это сделать иначе:

string = "Name : David         Account: 1234             Another thing: something  " 

ready = False
while ready == False:
    pos = string.find("  ")
    if pos != -1:
       string = string.replace("  "," ")
    else:
       ready = True
print(string)

это заменяет двойные пробелы в одном пространстве, пока у вас больше нет двойных пробелов

есть также способ сделать это без этой функции

string = "Hello Wor l d "
tmp_list = []
for char in string:
    if char != " ":
    tmp_list +=char
final_string = "".join(tmp_list)
print final_string

но это просто для удовольствия:)

Comments

    Ничего не найдено.