Hoe kan ik witruimte uit een string knippen?

Hoe verwijder ik voorloopwit en achterloopwit uit een string in Python?

Bijvoorbeeld:

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

Slechts één spatie, of alle spaties achter elkaar? Als het tweede, dan hebben strings al een .strip() methode:

>>> ' 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'

Als je echter maar één spatie hoeft te verwijderen, dan zou je dat kunnen doen met:

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

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

Merk ook op dat str.strip() ook andere spaties verwijdert (bijv. tabs en nieuwe regels). Om alleen spaties te verwijderen, kun je het te verwijderen teken specificeren als argument voor strip, bijv:

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

Dit verwijdert alle voorloop en achterloop witruimte in mijnString:

myString.strip()
Commentaren (2)

Je wilt strip():

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

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