quitar - modificar cadenas en python
¿Cómo puedo recortar espacios en blanco de una cadena de Python? (7)
¿Cómo elimino los espacios en blanco iniciales y finales de una cadena en Python?
Por ejemplo:
" Hello " --> "Hello"
" Hello" --> "Hello"
"Hello " --> "Hello"
"Bob has a cat" --> "Bob has a cat"
¿Solo un espacio, o todos esos espacios? Si es el segundo, entonces las cadenas ya tienen un método .strip()
:
>>> '' Hello ''.strip()
''Hello''
>>> '' Hello''.strip()
''Hello''
>>> ''Bob has a cat''.strip()
''Bob has a cat''
>>> '' Hello ''.strip() # ALL spaces at ends removed
''Hello''
Si solo necesitas eliminar un espacio, puedes hacerlo 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''
Además, tenga en cuenta que str.strip()
elimina otros caracteres de espacios en blanco (por ejemplo, pestañas y nuevas líneas). Para eliminar solo los espacios, puede especificar el carácter a eliminar como un argumento para strip
, es decir:
>>> " Hello/n".strip(" ")
''Hello/n''
Como se señaló en las respuestas anteriores
myString.strip()
eliminará todos los caracteres de espacio en blanco iniciales y finales, como / n, / r, / t, / f, espacio.
Para mayor flexibilidad usa los siguientes
- Elimina solo los caracteres de espacio en blanco
myString.lstrip()
:myString.lstrip()
- Elimina solo los caracteres de espacios en blanco finales :
myString.rstrip()
- Elimina caracteres de espacios en blanco específicos :
myString.strip(''/n'')
omyString.lstrip(''/n/r'')
omyString.rstrip(''/n/t'')
y así sucesivamente.
Más detalles están disponibles en los docs
Esto eliminará todos los espacios en blanco myString
y finales en myString
:
myString.strip()
Quería eliminar los demasiados espacios en una cadena (también entre la cadena, no solo al principio o al final). Hice esto, porque no sé cómo hacerlo de otra manera:
string = "Name : David Account: 1234 Another thing: something "
ready = False
while ready == False:
pos = string.find(" ")
if pos != -1:
string = string.replace(" "," ")
else:
ready = True
print(string)
Esto reemplaza los espacios dobles en un espacio hasta que ya no tenga espacios dobles
Quieres strip ():
myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ]
for phrase in myphrases:
print phrase.strip()
También hay una forma de hacerlo sin esa función.
string = "Hello Wor l d "
tmp_list = []
for char in string:
if char != " ":
tmp_list +=char
final_string = "".join(tmp_list)
print final_string
Pero es solo por diversión :)
strip
no se limita a los caracteres de espacio en blanco, ya sea:
# remove all leading/trailing commas, periods and hyphens
title = title.strip('',.-'')