La mejor manera de eliminar los signos de puntuación de una cadena
Parece que debería haber una forma más sencilla que:
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
¿La hay?
570
3
Desde el punto de vista de la eficiencia, no vas a superar
Para versiones superiores de Python utilice el siguiente código:
Realiza operaciones de cadena en bruto en C con una tabla de búsqueda - no hay mucho que supere eso, pero escribir su propio código C.
Si la velocidad no es una preocupación, hay otra opción:
Esto es más rápido que s.replace con cada carácter, pero no funcionará tan bien como los enfoques no puramente python como regexes o string.translate, como se puede ver en los tiempos de abajo. Para este tipo de problema, hacerlo a un nivel tan bajo como sea posible vale la pena.
Código de tiempo:
Esto da los siguientes resultados:
Yo suelo utilizar algo así:
No necesariamente más simple, sino una forma diferente, si estás más familiarizado con la familia re.