Lenguajes interpretados o de script, IDEs de desarrollo...
Moderadores: frank, dxfiles
-
Metal
- Mensajes: 32
- Registrado: Sab, 07 Ago 2010, 14:09
- Ubicación: Python
-
Contactar:
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.
-
hugo
- Mensajes: 1430
- Registrado: Sab, 07 Ago 2010, 14:09
- Ubicación: La Habana
-
Contactar:
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
-
Hyuuga_Neji
- Mensajes: 320
- Registrado: Jue, 17 Mar 2011, 15:38
- Ubicación: Abreus,Cienfuegos
-
Contactar:
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?
-
hugo
- Mensajes: 1430
- Registrado: Sab, 07 Ago 2010, 14:09
- Ubicación: La Habana
-
Contactar:
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:
Mensaje
por Metal » Mar, 05 Abr 2011, 15:29
Queda un espacio si hubiera hecho esto (con espacio):
pero no, lo q hizo fue esto (sin espacio):
Axioma de Espinosa
Si funciona, no lo toque.
-
Hyuuga_Neji
- Mensajes: 320
- Registrado: Jue, 17 Mar 2011, 15:38
- Ubicación: Abreus,Cienfuegos
-
Contactar:
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
-
hugo
- Mensajes: 1430
- Registrado: Sab, 07 Ago 2010, 14:09
- Ubicación: La Habana
-
Contactar:
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