Data Science|Basics

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

このブログでは他にもPythonの学習に役立つ情報を発信しています!ぜひご覧ください。

https://www.tech-teacher.jp/blog/python-function/

【完全マスター】!Pythonのindexの使い方を徹底解説!Python初心者の方で「なんとなくindexメソッドの使い方は掴めてきたけど、まだイマイチよく分からない」と悩んでいる方もいるでしょう...

https://www.tech-teacher.jp/blog/python_beginner/