Pythonで文字列から特定の文字を削除する方法|replaceと正規表現の使い方
replace()メソッドで文字を削除する
Pythonの文字列(str)クラスには、文字列内の部分文字列を置換するためのreplace()メソッドが用意されています。削除したい文字を空文字列("")に置き換えることで、実質的にその文字を取り除くことができます。
>>> "Hello people".replace("e", "")
'Hllo popl'複数の文字を一度に削除する:正規表現を使う
1行のコードで複数の文字をまとめて削除したい場合は、正規表現を使うのが便利です。削除したい文字を「|」で区切ってパターンを指定し、re.sub(置換対象パターン, 置換後の文字列, 対象文字列)という形式で実行します。
>>> import re
>>> re.sub("e|l", "", "Hello people")
'Ho pop'リストに格納された文字を削除する場合
削除したい文字がすでにリストとして用意されている場合は、join()を使って正規表現パターンを動的に生成するとコードがすっきりします。
>>> import re
>>> char_list = ['a', 'e', 'i', 'o', 'u']
>>> re.sub("|".join(char_list), "", "Hello people")
'Hll ppl'補足:文字クラス[]の活用
なお、正規表現では[](文字クラス)を使って置換対象の文字グループを作成することもできます。たとえばre.sub("[aeiou]", "", "Hello people")のように書けば、「|」で区切らなくても母音をすべて一度に削除できます。状況に応じて使い分けると、より読みやすく効率的なコードになります。
-
Pythonで文字列から特定の文字を削除する方法【replace・正規表現・translate】
replace()メソッドで文字を削除する基本の方法Pythonの文字列(str型)には、部分文字列を別の文字列へ置き換えるためのreplace()メソッドが用意されています。削除したい文字を空文字列()に置き換えることで、その文字を取り除くことができます。>>> Hello people.replace(e, ) Hllo popl正規表現(re.sub)で複数の文字を一度に削除する1行のコードで複数種類の文字をまとめて削除したい場合は、正規表現モジュール re を使うのがおすすめです。削除したい文字を「|」(OR条件)で区切って指定し、re.sub(置換対象パターン, 置
-
Pythonでリストの文字列表現をリストに変換する方法【ast.literal_evalの使い方】
Pythonでは、[apple, orange, banana] のように文字列として表現されたリストを、実際のリストオブジェクトへ変換したい場面があります。そんなときに便利なのが、標準ライブラリの ast.literal_eval() です。 ast.literal_eval()とは ast.literal_eval() は、文字列をPythonの式として安全に評価するための関数です。任意のコードを実行してしまう危険性がある eval() と異なり、評価できるのは文字列・数値・タプル・リスト・辞書・ブール値(True / False)、そして None といったPythonのリテラル構造のみ