Question Comment découper des espaces à partir d'une chaîne Python?


Comment puis-je supprimer les espaces de début et de fin d'une chaîne en Python?

Par exemple:

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

922
2018-04-17 19:16


origine


Réponses:


Juste un espace, ou tous ces espaces? Si la seconde, alors les chaînes ont déjà un .strip() méthode:

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

Si vous avez seulement besoin de supprimer un espace, vous pouvez le faire avec:

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

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

Notez également que str.strip() supprime également d'autres caractères d'espaces (par exemple, des onglets et des retours à la ligne). Pour supprimer uniquement les espaces, vous pouvez spécifier le caractère à supprimer en tant qu'argument strip, c'est à dire.:

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

1402
2018-04-17 19:21



Comme indiqué dans les réponses ci-dessus

myString.strip()

supprimera tous les caractères d'espaces avant et de fin tels que \ n, \ r, \ t, \ f, l'espace.

Pour plus de flexibilité, utilisez les éléments suivants

  • Supprime seulement de premier plan caractères blancs: myString.lstrip()
  • Supprime seulement traînant caractères blancs: myString.rstrip()
  • Enlève spécifique caractères blancs: myString.strip('\n') ou myString.lstrip('\n\r') ou myString.rstrip('\n\t') etc.

Plus de détails sont disponibles dans le docs


222
2018-05-18 04:16



strip n'est pas limité aux caractères d'espaces:

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

101
2018-04-17 13:22



myString.strip()

44
2018-04-17 19:19



Vous voulez strip ():

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

for phrase in myphrases:
    print phrase.strip()

20
2018-04-17 19:21



Il y a aussi un moyen de le faire sans cette fonction

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

Mais c'est juste pour s'amuser :)


0
2018-01-17 05:36