問題
Python で文字列から特定の文字を削除するには、一般的なこのアプローチは、文字列をループして、不要な文字を特定して削除することです。ただし、このアプローチの実装では文字列の変更に失敗することがよくあります。
回答
Python の文字列の不変性を理解することが重要です。文字列は不変です。つまり、文字列を直接変更することはできません。文字列内の文字を変更しようとすると、新しい文字列が作成されます。
特定の文字を正しく削除するには、変更した文字列を元の変数に割り当て直します。以下に例を示します:
line = "Hello, world!" for char in " ?.!/;:": line = line.replace(char, "") # Create a new string with the character removed print(line) # Output: "Hello,world"
または、組み込みの str.translate 関数を使用することもできます:
line = "Hello, world!" line = line.translate(None, "!@#$") # Remove characters from "!@#$" print(line) # Output: "Hello, world"
または re.sub による正規表現置換:
import re line = "Hello, world!" line = re.sub('[!@#$]', '', line) # Replace characters in `[]` with an empty string print(line) # Output: "Hello, world"
Python 3、Unicode の場合strings:
unicode_line = "Hello, world!" translation_table = {ord(c): None for c in "!@#$"} unicode_line = unicode_line.translate(translation_table) # Delete characters with None mapping print(unicode_line) # Output: "Hello, world"
文字列の不変性を理解することで、Python で特定の文字を効果的に削除し、文字列を効率的に操作できます。
以上がPython の文字列から特定の文字を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。