ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列から特定の文字を効率的に削除するにはどうすればよいですか?
Python で文字列から特定の文字を削除する
Python で文字列を操作する場合、特定の文字を削除する必要がある場合があります。これを行う最も一般的な方法は、replace() メソッドを使用することです。ただし、残念ながら、次のコードは文字を削除していないようです:
for char in line: if char in " ?.!/;:": line.replace(char,'')
このコードの問題は、replace() メソッドが文字列をその場で変更しないことです。文字を正しく置換するには、replace() メソッドの結果を line 変数に再代入する必要があります:
for char in " ?.!/;:": line = line.replace(char,'')
または、より簡潔で効率的なアプローチを使用できます:
import string line = line.translate(string.maketrans('', ''), '!@#$')
translate() メソッドは、2 番目の引数として変換テーブルを受け取ります。変換テーブルは、各文字が削除される対応する文字を表す文字列です。この場合、変換テーブルには「!」、「@」、「#」、「$」の 4 つの文字が含まれます。これらの文字のいずれかに一致する行内の文字はすべて削除されます。
もう 1 つのオプションは、正規表現を使用することです。
import re line = re.sub('[!@#$]', '', line)
sub() メソッドは、最初の正規表現パターンを受け取ります。口論。括弧で囲まれたパターンは、削除する文字を指定します。 2 番目の引数は、一致する文字を置換する文字列です。この場合、文字を効果的に削除するために空の文字列が使用されます。
Python 3 では、文字列は Unicode として表され、少し異なるアプローチが必要です。
unicode_line = unicode_line.translate({ord(c): None for c in '!@#$'})
このコードは、リスト内の各文字が None にマップされ、削除する必要があることを示す変換テーブル。
以上がPython で文字列から特定の文字を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。