2017-11-08 3 views
2

Ich habe mehrere Antworten auf Best way to strip punctuation from a string in Python angesehen, aber keine von diesen scheint mein Problem anzugehen. Ich versuche, Interpunktion von einer Zeichenfolge mit string.translate() zu entfernen.string.translate() akzeptiert keine 2 args

Wenn ich führen Sie den Code:

import string 
s = "This. has? punctuation," 
noPunct = s.translate(s.maketrans("",""), string.punctuation) 

ich:

TypeError: translate() takes exactly one argument (2 given) 

Ist das vielleicht ein Problem mit der Python-Version verwende ich? Ich benutze Python 3.5.4 für Kompatibilität mit Nltk. Sonst bin ich ratlos. Jede Hilfe wäre willkommen.

Antwort

1

Die Python-3-Schnittstelle für str.translate verwendet eine Abbildung. Machen Sie einen mit str.maketrans:

>>> import string 
>>> table = str.maketrans({}.fromkeys(string.punctuation)) 
>>> "This. has? punctuation,".translate(table) 
'This has punctuation' 
1

Sie verwenden Python 2.x-Code, führen aber Python 3.x aus. Blättern Sie nach unten auf die verknüpfte Frage zu sehen, wie es in Python 3.x zu tun:

s.translate(mapping) 
Verwandte Themen