Hvordan trimmer jeg mellomrom fra en streng?

Hvordan fjerner jeg ledende og etterfølgende mellomrom fra en streng i Python?

For eksempel:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
Løsning

Bare ett mellomrom, eller alle sammenhengende mellomrom? Hvis det andre, så har strenger allerede en .strip()-metode:

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

Hvis du imidlertid bare trenger å fjerne ett mellomrom, kan du gjøre det med:

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

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

Vær også oppmerksom på at str.strip() også fjerner andre mellomromstegn (f.eks. tabulatorer og ny linje). Hvis du bare vil fjerne mellomrom, kan du angi tegnet som skal fjernes som argument for strip, f.eks:

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

Dette vil fjerne alle innledende og avsluttende mellomrom i myString:

myString.strip()
Kommentarer (2)

Du vil ha strip():

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

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