Pythonで文字列から文字を削除する方法
序論
この記事では、Pythonを使って文字列から文字を削除するために使える2つの一般的な方法について説明します。
- the String replace() method
- the String translate() method
Pythonで文字列からスペースを削除するさまざまな方法を学ぶには、Pythonで文字列からスペースを削除するを参照してください。
PythonのStringオブジェクトは変更不可能なので、値を変えることはできません。文字列の値を操作するメソッドは新しいStringオブジェクトを返します。
このチュートリアルの例では、異なる文字の削除方法を示すために、Pythonの対話型コンソールをコマンドラインで使用しています。
Info
replace()メソッドを使用して、文字列から文字を削除します。
文字列のreplace()メソッドは、文字を新しい文字で置き換えます。文字列から文字を削除するには、削除する文字を最初の引数として、空の文字列を二番目の引数として指定します。
以下の文字列変数を宣言する:「文字列」
- s = ‘abc12321cba’
キャラクターを空の文字列で置き換えてください。
- print(s.replace(‘a’, ”))
出力されるものは次のとおりです。
bc12321cb
出力によれば、文字「a」の両方の出現が文字列から取り除かれました。
replace()メソッドを使用して、文字列から改行文字を削除する。
改行文字を含む文字列変数を宣言する。
- s = ‘ab\ncd\nef’
改行文字を空の文字列に置き換える。
- print(s.replace(‘\n’, ”))
出力は次の通りです。
abcdef
出力結果は、文字列から改行文字(\n)が両方とも削除されたことを示しています。
replace()メソッドを使用して、文字列から部分文字列を削除する
replace()メソッドは引数として文字列を受け取るため、文字列内の単語も置き換えることができます。
文字列変数を宣言してください。
- s = ‘Helloabc’
特定の単語を空欄に置き換える:
- print(s.replace(‘Hello’, ”))
出力は:
abc
出力結果は、入力文字列から「Hello」という文字列が削除されたことを示しています。
replace()メソッドを使用して、特定の回数だけ文字を削除する。
replace() メソッドには、文字列の置換を停止する前に実行する置換の数を指定するための第三引数を渡すことができます。たとえば、第三引数として2を指定すると、指定された文字の最初の2つの出現のみが置換されます。
文字列の変数を宣言してください。
- s = ‘abababab’
最初の2つの文字を新しい文字で置き換える。
- print(s.replace(‘a’, ‘A’, 2)) # perform replacement twice
出力は次の通りです。
AbAbabab
出力結果によると、最初の2つの’a’の出現箇所が’A’に置換されました。置換は2回のみ行われたため、文字列内の他の’a’の出現箇所はそのまま残っています。
translate()メソッドを使用して、文字列から文字を取り除く
Pythonの文字列のtranslate()メソッドは、指定されたマッピングテーブルまたは辞書を使用して文字列内の各文字を置換します。
文字列変数を宣言する。
- s = ‘abc12321cba’
文字のUnicodeコードポイントの値を取得し、それをNoneで置き換えてください。
- print(s.translate({ord(‘b’): None}))
出力は次の通りです:
ac12321ca
カスタム辞書によって定義された通り、文字列からbの両方の出現が削除され、出力が示されました。
translate()メソッドを使用して文字列から複数の文字を削除する
translate()メソッドを使用することで、文字列内の複数の文字を置き換えることができます。以下の例では、カスタム辞書 {ord(i): None for i in ‘abc’} を使用し、与えられた文字列内のすべてのa、b、cの出現箇所をNoneで置き換えています。
文字列型の変数を宣言する。
- s = ‘abc12321cba’
「abc」という文字をすべて「None」に置き換える。
- print(s.translate({ord(i): None for i in ‘abc’}))
出力結果は次の通りです。
12321
カスタム辞書で指定された通り、文字列からa、b、cのすべての出現箇所が削除されて、出力されました。
translate()メソッドを使用して文字列から改行文字を削除する。
文字列内の改行文字をtranslate()メソッドを使って置換することができます。以下の例では、カスタム辞書 {ord(‘\n’): None} を使用して、与えられた文字列内のすべての \n の出現をNoneで置き換えています。
文字列変数を宣言してください。
- s = ‘ab\ncd\nef’
\n文字をすべて「None」で置き換えてください。 (Replace all the \n characters with None)
- print(s.translate({ord(‘\n’): None}))
出力は次の通りです。
abcdef
出力は、カスタム辞書で定義された通り、改行文字「\n」のすべての出現が文字列から削除されていることを示しています。
結論
このチュートリアルでは、Pythonで文字列から文字を削除するために使用できるいくつかの方法を学びました。Pythonの文字列に関する学習を続けてください。