Pythonで文字列から文字を削除する方法

はじめに

この記事では、Pythonを使用して文字列から文字を削除するための2つの一般的な方法について説明します:

  • String replace()メソッド
  • String translate()メソッド

Pythonで文字列からスペースを削除するさまざまな方法については、「Pythonで文字列からスペースを削除する」を参照してください。

A Python String object is immutable, so you can’t change its value. Any method that manipulates a string value returns a new String object.

このチュートリアルの例では、異なる文字を削除する方法をデモンストレーションするために、Pythonインタラクティブコンソールをコマンドラインで使用します。

DigitalOcean App Platformを使用してGitHubからPythonアプリケーションをデプロイしましょう。DigitalOceanがアプリのスケーリングにフォーカスします。

replace()メソッドを使用して文字列から文字を削除する

String replace()メソッドは、文字を新しい文字で置き換えるためのものです。文字列から文字を削除するには、最初の引数として置き換える文字(または文字列)を指定し、2番目の引数として空の文字列を指定します。

文字列変数を宣言します:

  1. s = 'abc12321cba'

文字を空の文字列に置き換えます:

  1. print(s.replace('a', ''))

出力は:

Output
bc12321cb

出力結果は、文字aの両方の出現が文字列から削除されたことを示しています。

replace()メソッドを使用して文字列から改行文字を削除する

改行文字を含む文字列変数を宣言します:

  1. s = 'ab\ncd\nef'

改行文字を空の文字列に置き換えます:

  1. print(s.replace('\n', ''))

出力は:

Output
abcdef

出力結果は、改行文字(\n)の両方が文字列から削除されたことを示しています。

replace()メソッドを使用して文字列からサブストリングを削除する

replace()メソッドは文字列を引数として受け取るため、文字列内の単語を置換することもできます。

文字列変数を宣言します:

  1. s = 'Helloabc'

単語を空の文字列で置換します:

  1. print(s.replace('Hello', ''))

出力は次のようになります:

Output
abc

出力には、Helloという文字列が入力文字列から削除されたことが示されています。

replace()メソッドを使用して特定の回数だけ文字を削除する

replace()メソッドには、3番目の引数として文字列内での置換回数を指定することができます。たとえば、3番目の引数として2を指定すると、指定された文字の最初の2回の出現のみが置換されます。

文字列変数を宣言します:

  1. s = 'abababab'

最初の2回の出現を新しい文字で置換します:

  1. print(s.replace('a', 'A', 2)) # 置換を2回行う

出力は次のようになります:

Output
AbAbabab

出力には、a文字の最初の2回の出現がA文字に置換されていることが示されています。置換は2回のみ行われたため、その他のaの出現は文字列内に残っています。

translate()メソッドを使用して文字列から文字を削除する方法

Pythonの文字列のtranslate()メソッドは、与えられたマッピングテーブルまたは辞書を使用して文字列内の各文字を置換します。

文字列変数を宣言します:

  1. s = 'abc12321cba'

文字のUnicodeコードポイント値を取得し、それをNoneで置き換えます:

  1. print(s.translate({ord('b'): None}))

出力は次のようになります:

Output
ac12321ca

出力は、カスタム辞書で定義されたように文字列からb文字の両方が削除されていることを示しています。

translate()メソッドを使用して文字列から複数の文字を削除する方法

translate()メソッドを使用して文字列内の複数の文字を置換することができます。次の例では、与えられた文字列内のabcのすべての出現箇所をNoneで置き換えるカスタム辞書{ord(i): None for i in 'abc'}を使用しています。

文字列変数を宣言します:

  1. s = 'abc12321cba'

文字列内のすべてのabc文字をNoneに置き換えます:

  1. print(s.translate({ord(i): None for i in 'abc'}))

出力は:

Output
12321

出力は、カスタム辞書で定義された通り、文字列からab、およびcのすべての出現を削除したことを示しています。

translate()メソッドを使用して文字列から改行文字を削除する

translate()メソッドを使用して文字列内の改行文字を置換することができます。次の例では、カスタム辞書{ord('\n'): None}を使用して、与えられた文字列内のすべての\nの出現をNoneで置き換えます。

文字列変数を宣言する:

  1. s = 'ab\ncd\nef'

\nのすべての文字をNoneで置換する:

  1. print(s.translate({ord('\n'): None}))

出力は:

Output
abcdef

出力は、カスタム辞書で定義された通り、文字列から改行文字\nのすべての出現を削除したことを示しています。

結論

このチュートリアルでは、Pythonで文字列から文字を削除するために使用できるいくつかの方法を学びました。Pythonの文字列についての学習を続けてください。Pythonの文字列についてもっと学びましょう。

Source:
https://www.digitalocean.com/community/tutorials/python-remove-character-from-string