Il modo migliore per togliere la punteggiatura da una stringa
Sembra che ci dovrebbe essere un modo più semplice di:
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
C'è?
570
3
Dal punto di vista dell'efficienza, non si può battere
Per le versioni superiori di Python usate il seguente codice:
Esegue operazioni di stringhe grezze in C con una tabella di lookup - non c'è molto che possa battere questo, ma scrivere il proprio codice C.
Se la velocità non è una preoccupazione, un'altra opzione lo è:
Questo è più veloce di s.replace con ogni carattere, ma non si comporta bene come gli approcci non puri di python come le regex o string.translate, come potete vedere dai tempi qui sotto. Per questo tipo di problema, farlo al livello più basso possibile paga.
Codice dei tempi:
Questo dà i seguenti risultati:
Di solito uso qualcosa del genere:
Non necessariamente più semplice, ma un modo diverso, se avete più familiarità con la famiglia Re.