Pythonで句読点を削除する方法
Python で句読点を削除する方法は次のとおりです。
方法 1:
str.isalnum:
S. isalnum() -> bool
戻り値: string に少なくとも 1 つの文字があり、すべての文字が文字または数字の場合は True、それ以外の場合は False。
例:
>>> string = "Special $#! characters spaces 888323" >>> ''.join(e for e in string if e.isalnum()) 'Specialcharactersspaces888323'
文字と数字のみを認識できます。これは非常に致命的であり、漢字やスペースなども破壊します
方法 2:
string.punctuation
import re, string s ="string. With. Punctuation?" # Sample string # 写法一: out = s.translate(string.maketrans("",""), string.punctuation) # 写法二: out = s.translate(None, string.punctuation) # 写法三: exclude = set(string.punctuation) out = ''.join(ch for ch in s if ch not in exclude) # 写法四: >>> for c in string.punctuation: s = s.replace(c,"") >>> s 'string With Punctuation' # 写法五: out = re.sub('[%s]' % re.escape(string.punctuation), '', s) ## re.escape:对字符串中所有可能被解释为正则运算符的字符进行转义 # 写法六: # string.punctuation 只包括 ascii 格式; 想要一个包含更广(但是更慢)的方法是使用: unicodedata module : from unicodedata import category s = u'String — with - «Punctuation »...' out = re.sub('[%s]' % re.escape(string.punctuation), '', s) print 'Stripped', out # 输出:u'Stripped String \u2014 with \xabPunctuation \xbb' out = ''.join(ch for ch in s if category(ch)[0] != 'P') print 'Stripped', out # 输出:u'Stripped String with Punctuation ' # For Python 3 str or Python 2 unicode values, str.translate() only takes a dictionary; codepoints (integers) are looked up in that mapping and anything mapped to None is removed. # To remove (some?) punctuation then, use: import string remove_punct_map = dict.fromkeys(map(ord, string.punctuation)) s.translate(remove_punct_map) # Your method doesn't work in Python 3, as the translate method doesn't accept the second argument any more. import unicodedata import sys tbl = dict.fromkeys(i for i in range(sys.maxunicode) if unicodedata.category(chr(i)).startswith('P')) def remove_punctuation(text): return text.translate(tbl)
方法 3:
re
例:
import re s ="string. With. Punctuation?" s = re.sub(r'[^\w\s]','',s)
テスト:
import re, string, timeit s ="string. With. Punctuation" exclude = set(string.punctuation) table = string.maketrans("","") regex = re.compile('[%s]' % re.escape(string.punctuation)) def test_set(s): return ''.join(ch for ch in s if ch not in exclude) def test_re(s): return regex.sub('', s) def test_trans(s): return s.translate(table, string.punctuation) def test_repl(s): for c in string.punctuation: s=s.replace(c,"") return s print"sets :",timeit.Timer('f(s)', 'from __main__ import s,test_set as f').timeit(1000000) print"regex :",timeit.Timer('f(s)', 'from __main__ import s,test_re as f').timeit(1000000) print"translate :",timeit.Timer('f(s)', 'from __main__ import s,test_trans as f').timeit(1000000) print"replace :",timeit.Timer('f(s)', 'from __main__ import s,test_repl as f').timeit(1000000) out_put: # sets : 19.8566138744 # regex : 6.86155414581 # translate : 2.12455511093 # replace : 28.4436721802
Python 関連の技術記事をさらに詳しく知りたい場合は、Python チュートリアル 列にアクセスして学習してください。
以上がPythonで句読点を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法
