Python

Pythonのstrip()をマスターしよう!文字削除法まとめ

Pythonでは、必要のない文字列を削除できる「stripメソッド」が備わっています。

よく使用されるメソッドですが、

「どのように空白文字を削除するのか分からない」
「特定の文字を削除するのか分からない」
「stripメソッドについて網羅的に知りたい」

などの悩みもあるでしょう。

そこで今回は、stripメソッドの基礎知識から空白文字や特定文字の削除の仕方、さらにlstripメソッド・rstripメソッドとの違いに至るまで詳しく説明していきますね。

stripメソッドについて

「strip( )メソッド」とは、Pythonの組み込み関数の1つで、両端にある特定の文字列や空白文字を削除するメソッドですよ。

入力フォームから文字列を取得して処理を実行したり、複数行のテキストデータを行ごと、さらには単語ごとに分解してテキスト解析を実行したりする場合に、文字列の末尾にスペースや改行コードが入ってしまったというケースに役立ちます。

stripメソッドの構文は次のようになっています。

1. 文字列 .strip ( )

このように、stripメソッドは文字列メソッドなので先頭に削除したい必要ない文字を含んだ文字列を記述し、カッコの中に引数として削除したい文字を指定します。

削除したい文字は複数指定することができます。引数を指定しないということもでき、その場合はデフォルトでいくつかの不必要な文字を自動的に削除してくれます。

stripメソッドの使い方

ここからは実際にコードを用いてstripメソッドの使い方を説明します。

  • 空白文字の削除
  • 特定文字の削除

それでは見ていきましょう。

空白文字の削除

stripメソッドの引数に何も指定しない場合、自動で空白文字を削除します。
では、実際にコードを用いて説明しましょう。

1.  # 引数を省略して実行
2.  rawStr = ‘ □Hello , World□ ‘   # わかりやすいように全角スペースを□で表示
3.  newStr = rawStr . strip ( )
4.
5.  print ( rawStr )
6.  print ( newStr )
7.
8.  # 実行結果
9.  □Hello , World□   # 元の文字列が変更されない
10. Hello , World

このように、文字間の空白は削除されません

また、スペースと同じように改行も自動的に削除されます。

1.  rawStr = ‘ \nHello , World\n’   # 「\n」改行コード
2.  newStr = rawStr . strip ( )
3.
4.  print ( rawStr )
5.  print ( newStr )
6.
7.  # 実行結果
8.
9.  Hello , World
10.
11. Hello , World

上記の結果から、rawStr変数では前後に改行が入って表示されているのが分かるでしょう。しかし、stripメソッドを使用したあとの文字列newStrでは改行が削除されていることが分かりますね。

空白文字は以下の通りです。

  • 半角スペース
  • 全角スペース
  • 「\n」改行
  • 「\f」改ページ
  • 「\t」タブ
  • 「\v」垂直タブ
  • 「\r」復帰

特定文字の削除

strip( )の引数に削除する文字を指定すると特定の文字を削除することができますよ。

1. rawStr = ‘aaaHello , Worldaaa’
2. newStr = rawStr . strip ( ‘aaa’ )
3.
4. print ( rawStr )
5. print ( newStr )
6.
7. # 実行結果
8. aaaHello , Worldaaa
9. Hello , World

先頭と末尾に「aaa」という文字列が入っていましたが、しっかりと削除されていることが分かりますね。

lstripメソッドとrstripメソッドの違いについて

ここからはlstripメソッドとrstripメソッドの基礎知識や使い方について説明していきます。

最後にstripメソッド・lstripメソッド・rstripメソッドの違いについてまとめますので、ぜひ最後までご覧ください。

lstripメソッドとは

stripメソッドは文字列の両端から必要ない文字を削除するメソッドでしたが、lstripメソッドは「left strip」、つまり左端から文字列を削除するメソッドとなります。

lstripメソッドの構文は下記の通りです。

1. 文字列 . lstrip ( )

それでは実際にコードを用いて説明していきます。

1. rawStr = ‘aaaHello , Worldaaa’
2. newStr = rawStr . lstrip ( ‘aaa’ )
3.
4. print ( rawStr )
5. print ( newStr )
6.
7. # 実行結果
8. aaaHello , Worldaaa
9. Hello , Worldaaa

このように左側の文字列、つまり指定した文字列の先頭を削除していることが分かるでしょう。

また、下記のようにlstripメソッドでも空白文字を削除することができますよ。

1. rawStr = ‘□Hello , World□‘   # わかりやすいように全角スペースを□で表示
2. newStr = rawStr . lstrip ( )
3.
4. print ( rawStr )
5. print ( newStr )
6.
7. # 実行結果
8. □Hello , World□
9. Hello , World□

rstripメソッドとは

rstripメソッドは「right strip」、つまり右側の文字列を削除するメソッドです。

rstripメソッドの構文は下記の通りです。

1. 文字列 . rstrip ( )

それでは実際にコードを用いて説明していきます。

1. rawStr = ‘aaaHello , Worldaaa’
2. newStr = rawStr . rstrtip ( ‘aaa’ )
3.
4. print ( rawStr )
5. print ( newStr )
6.
7. # 実行結果
8. aaaHello , Worldaaa
9. aaaHello , World

このように右側の文字列、つまり指定した文字列の末尾を削除していることが分かるでしょう。

また、下記のようにrstripメソッドでも空白文字を削除することができますよ。

1. rawStr = ‘□Hello , World□‘   # わかりやすいように全角スペースを□で表示
2. newStr = rawStr . rstrip ( )
3.
4. print ( rawStr )
5. print ( newStr )
6.
7. # 実行結果
8. □Hello , World□
9. □Hello , World

stripメソッド・lstripメソッド・rstripメソッドの違い

ここまでstripメソッド・lstripメソッド・rstripメソッドを紹介してきましたが、ここでもう一度特徴をまとめます。

stripメソッド 先頭と末尾の両端から文字を削除したコピーを返す
lstripメソッド 先頭から文字を削除したコピーを返す
rstripメソッド 末尾から文字を削除したコピーを返す

上記のような違いがあるので、使用する際は間違えないように注意しましょう。

strip系メソッドの注意点

最後にstrip系メソッドで単語を削除する場合、注意しなければいけない点がいくつかありますので紹介します。

次のコードをご覧ください。

1. text = ‘dog . jpeg’
2. print(text . strip ( ‘.jpeg’ ))
3.
4. # 実行結果
5. do

このコードでは、「.jpeg」という拡張子だけを削除したいところが、削除対象の文字の1つ「g」がファイル名の最後に来てしまっているのでそれも削除され、結果として「do」出力されています。

そのため、次のように削除したい文字列を分断する必要があります

1. text = ‘dog _ x . jpeg ‘
2. text . strip ( ‘.jpeg’ )
3.
4. # 実行結果
5. dog _ x

見落としがちなミスなので注意しておきましょう。

指定した特定文字に一致する文字列ではなく、指定した特定文字に含まれる文字が削除されるので注意しましょう。

1.  Str = ‘aaabbbccc – HelloWorld – aaabbbccc’
2.
3.  print ( Str . strip ( ‘abc’ ) )
4.  # 実行結果
5.  – HelloWorld –
6.
7.  print ( Str . strip ( ‘bca’ ) )
8.  # 実行結果
9.  – HelloWorld –

このように「’abc’」でも「’bca’」でも同じ結果となりますよ。こちらも間違えやすいので注意しておきましょう。

また、引数に文字列を指定した場合は空白文字は削除されません

1. Str = ‘□\n□aaabbbccc – HelloWorld – aaabbbccc□\t’   #全角スペース=□
2. # 末尾の全角スペースやタブを分かりやすくするために組み込み関数repr( )を使用
3. print ( repr ( Str ))
4. # 実行結果
5. ’\u3000\naaabbbccc – HelloWorld – aaabbbccc\u3000\t’
6.
7. print ( repr ( Str . strip ( ‘abc’ ) ) )
8. # 実行結果
9. ’\u3000\naaabbbccc – HelloWorld\u3000\t’

そのため、空白文字も削除したい場合には明示的に指定するか、strip( )を繰り返し使用しましょう。

1. print ( repr ( Str . strip ( ‘abc\n□\t’ ) ) )   # 明示的に指定
2. # 実行結果
3. ’- HelloWorld -‘
4.
5. print ( repr ( Str . strip ( ) . strip ( ‘abc’ ) ) )   # strip( )を繰り返し使用
6. # 実行結果
7. ’- HelloWorld -’

まとめ

これまでstripメソッドについて詳しく説明してきましたがいかがでしたでしょうか。

今回説明した要点をまとめると以下のようになります。

  • stripメソッドは先頭と末尾の空白文字や特定文字を削除する
  • stripメソッドの構文は「文字列 . strip ( )」
  • lstripメソッドは先頭の空白文字や特定文字を削除する
  • lstripメソッドの構文は「文字列 . lstrip ( )」
  • rstripメソッドは末尾の空白文字や特定文字を削除する
  • rstripメソッドの構文は「文字列 . rstrip ( )」

stripメソッドはよく使用するメソッドです。また、見落としがちなミスがいくつかありますので間違えないようにしっかり頭に入れておきましょう。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。