Come faccio a tagliare gli spazi bianchi da una stringa?

Come rimuovo gli spazi bianchi iniziali e finali da una stringa in Python?

Per esempio:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
Soluzione

Solo uno spazio o tutti gli spazi consecutivi? Se la seconda, allora le stringhe hanno già un metodo .strip():

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

Se hai bisogno di rimuovere solo uno spazio però, potresti farlo con:

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

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

Inoltre, notate che str.strip() rimuove anche altri caratteri di spazio bianco (ad esempio tabulazioni e newline). Per rimuovere solo gli spazi, potete specificare il carattere da rimuovere come argomento di strip, cioè:

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

Questo rimuoverà tutti gli spazi bianchi iniziali e finali in myString:

myString.strip()
Commentari (2)

Voi volete strip():

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

for phrase in myphrases:
    print phrase.strip()
Commentari (0)