1366 votes

Couper une chaîne de caractères en Python ?

Comment supprimer les espaces en tête et en queue d'une chaîne en Python ?

Par exemple :

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

1993voto

Brian Points 48423

Un seul espace, ou tous ces espaces ? Si c'est la deuxième option, alors les chaînes ont déjà une valeur de .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 n'avez besoin de supprimer qu'un seul 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 les autres caractères d'espacement (par exemple, les tabulations et les nouvelles lignes). Pour supprimer uniquement les espaces, vous pouvez spécifier le caractère à supprimer en tant qu'argument de la commande strip c'est-à-dire :

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

284voto

Mudit Jain Points 1228

Comme indiqué dans les réponses ci-dessus

 myString.strip()

supprimera tous les caractères d'espacement de tête et de queue tels que \n , \r , \t , \f , l'espace.

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

  • Supprime uniquement leader caractères d'espacement : myString.lstrip()
  • Supprime uniquement suivi de caractères d'espacement : myString.rstrip()
  • Supprime spécifique caractères d'espacement : myString.strip('\n') ou myString.lstrip('\n\r') ou myString.rstrip('\n\t') et ainsi de suite.

Plus de détails sont disponibles dans le docs

136voto

Drew Noakes Points 69288

strip n'est pas non plus limitée aux caractères d'espacement :

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

63voto

Deniz Dogan Points 8848
myString.strip()

31voto

vezult Points 3812

Vous voulez strip() :

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

for phrase in myphrases:
    print phrase.strip()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X