文字列から句読点を除去する最適な方法
もっとシンプルな方法があってもよさそうなものだが。
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
ありますか?
570
3
もっとシンプルな方法があってもよさそうなものだが。
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
ありますか?
効率性の観点から、あなたは以下に勝てません。
Pythonの上位バージョンでは以下のコードを使用します。
これはルックアップテーブルを使ってC言語で生の文字列操作を行っています。自分でC言語のコードを書く以外にこれに勝るものはありません。
速度を気にしないのであれば、別の選択肢もありますが。
これは、各文字での s.replace よりも高速ですが、以下のタイミングからわかるように、正規表現や string.translate のような純粋ではない python のアプローチよりも性能が劣ります。 この種の問題では、できるだけ低いレベルで行うことが効果的です。
タイミングコード。
これにより、以下のような結果が得られます。
普段はこんな感じで使っています。
必ずしもシンプルではなく、レファミリーに慣れている方には別の方法があると思います。