Eliminar subcadena en python

Lenguajes interpretados o de script, IDEs de desarrollo...

Moderadores: frank, dxfiles

Responder
Metal
Mensajes: 32
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: Python
Contactar:

Eliminar subcadena en python

Mensaje por Metal » Lun, 13 Dic 2010, 13:46

Tengo q eliminar una subcadena de una cadena y la solución q se me ocurrió fue:

Código: Seleccionar todo

texto = "Foro de Soporte Técnico en Tecnologías Libres"
texto_eliminar = "Soporte"
nuevo_texto = texto.replace(texto_eliminar, "")
Me gustaría saber q creen de esta solución y si tienen alguna mejor por favor compartirla.
Axioma de Espinosa
Si funciona, no lo toque.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Eliminar subcadena en python

Mensaje por hugo » Mar, 14 Dic 2010, 05:00

Tu solución me parece suficientemente "pitónica". Otra variante podría ser utilizando las expresiones regulares:

Código: Seleccionar todo

import re
texto = "Foro de Soporte Técnico en Tecnologías Libres"
texto = re.sub("de Soporte ", "", texto)
La ventaja de esta variante es que las expresiones regulares permiten una mayor flexibilidad.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
Hyuuga_Neji
Mensajes: 320
Registrado: Jue, 17 Mar 2011, 15:38
Ubicación: Abreus,Cienfuegos
Contactar:

Re: Eliminar subcadena en python

Mensaje por Hyuuga_Neji » Mar, 05 Abr 2011, 14:48

Bueno no es ke me kiera meter pero al importar re lo que hicimos fue reemplazar el texto por un espacio pero la cadena final nos keda con un doble espaciado y me imagino que ase no es el resultado que queremos o si?

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Eliminar subcadena en python

Mensaje por hugo » Mar, 05 Abr 2011, 15:17

Negativo, en este ejemplo se remplaza la expresión "de Soporte " (incluyendo el espacio al final) por una cadena vacía, por lo que no debería haber duplicidad de espacios, el texto resultante debería quedar: "Foro Técnico en Tecnologías Libres".
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Metal
Mensajes: 32
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: Python
Contactar:

Re: Eliminar subcadena en python

Mensaje por Metal » Mar, 05 Abr 2011, 15:29

Queda un espacio si hubiera hecho esto (con espacio):

Código: Seleccionar todo

texto = re.sub("de Soporte ", " ", texto)
pero no, lo q hizo fue esto (sin espacio):

Código: Seleccionar todo

texto = re.sub("de Soporte ", "", texto)
Axioma de Espinosa
Si funciona, no lo toque.

Avatar de Usuario
Hyuuga_Neji
Mensajes: 320
Registrado: Jue, 17 Mar 2011, 15:38
Ubicación: Abreus,Cienfuegos
Contactar:

Re: Eliminar subcadena en python

Mensaje por Hyuuga_Neji » Mié, 06 Abr 2011, 14:02

cierto no me fije que esbamos poniendo la inlusion del espacio que viene detras de la palabra texto pero se me ocurre una idea para generalizar...... o sea sin llegar a definir una nueva funcion guardar la cadena a reemplazar en una nueva variable y nos kedaria asi:

Código: Seleccionar todo

>>> cadena_original = "Esto No lo voy a borrar" 
>>> cad_eliminar = "No "
>>> import re 
>>> cadena_final = re.sub(cad_eliminar,"",cadena_original)
>>> print cadena_final
Esto lo voy a borrar

Es es mismo ejemplo solo gastando mas memoria pero mas menos serviria para definir una funcion mas adelante no creen

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Eliminar subcadena en python

Mensaje por hugo » Mié, 06 Abr 2011, 14:12

Claro, nada obliga a especificar el texto a eliminar en la propia llamada o a devolverlo en la misma cadena, yo solo lo puse así para abreviar. ;)
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Responder