Beste manier om interpunctie van een string te verwijderen
Het lijkt erop dat er een eenvoudigere manier moet zijn dan:
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
Is dat zo?
570
3
Vanuit een efficiëntie perspectief, zul je niet winnen van
Voor hogere versies van Python gebruik de volgende code:
Het is het uitvoeren van onbewerkte string operaties in C met een lookup tabel - er is niet veel dat dat zal verslaan, maar het schrijven van je eigen C-code.
Als snelheid geen zorg is, is een andere optie dat wel:
Dit is sneller dan s.replace met elke char, maar zal'niet zo goed presteren als niet-zuivere python benaderingen zoals regexes of string.translate, zoals je kunt zien aan de onderstaande timings. Voor dit soort problemen loont het om het op een zo laag mogelijk niveau te doen.
Timing code:
Dit geeft de volgende resultaten:
Ik gebruik meestal zoiets als dit:
Niet per se eenvoudiger, maar een andere manier, als je meer bekend bent met de re familie.