この記事では、Pythonの文字列の先頭や末尾から不要な文字(デフォルトでは空白文字)を削除した新しい文字列を返す**strip()
、lstrip()
、rstrip()
**メソッドについて解説します。
目次
空白文字の除去
これらのメソッドの最も一般的な用途は、文字列の前後にある不要な空白(スペース、タブ、改行など)を取り除くことです。
strip()
は、文字列の両端から空白文字を除去します。
text = " Hello Python "
cleaned_text = text.strip()
print(f"'{cleaned_text}'") # 出力: 'Hello Python'
**lstrip()
は、文字列の左側(先頭)**から空白文字を除去します。
text = " Hello Python "
cleaned_text = text.lstrip()
print(f"'{cleaned_text}'") # 出力: 'Hello Python '
**rstrip()
は、文字列の右側(末尾)**から空白文字を除去します。
text = " Hello Python "
cleaned_text = text.rstrip()
print(f"'{cleaned_text}'") # 出力: ' Hello Python'
これらのメソッドは、元の文字列を変更せず、常に新しい文字列を返すことに注意してください。
特定の文字の除去
strip()
系のメソッドは、引数に文字列を渡すことで、空白文字以外にも特定の文字を削除できます。引数として渡された文字列に含まれるいずれかの文字が、文字列の端にある限り除去され続けます。
banner_text = "---===...Welcome...===---"
# 端にある "-", "=", "." のいずれかの文字をすべて除去
cleaned_banner = banner_text.strip("-=.")
print(cleaned_banner) # 出力: Welcome
引数の文字列は「削除する文字のセット」として扱われ、その順番は関係ありません。
実用例:ユーザー入力の整形
strip()
メソッドは、ユーザーが入力したデータから、意図せず含まれてしまった前後の空白を取り除く際によく使われます。
# ユーザーが " admin " と入力したと仮定
user_input = " admin "
# strip()で前後の空白を除去
cleaned_input = user_input.strip()
# 整形されたデータを使って認証などの処理を行う
if cleaned_input == "admin":
print("管理者としてログインしました。")
まとめ
strip()
: 文字列の両端から指定した文字(デフォルトは空白)を除去します。lstrip()
: 文字列の左側から指定した文字を除去します。rstrip()
: 文字列の右側から指定した文字を除去します。- ユーザー入力の整形や、ファイルから読み込んだデータのクリーニングに非常に役立ちます。