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 -’ |
『Tech Teacher』3つの魅力
魅力1. オーダーメイドのカリキュラム
『Tech Teacher』では、決められたカリキュラムがなくオーダーメイドでカリキュラムを組んでいます。「質問だけしたい」「相談相手が欲しい」等のご要望も実現できます。
魅力2. 担当教師によるマンツーマン指導
Tech Teacherでは、完全マンツーマン指導で目標達成までサポートします。
東京大学を始めとする難関大学の理系学生・院生・博士の教師がが1対1で、丁寧に指導しています。
そのため、理解できない箇所は何度も分かるまで説明を受けることができます。
魅力3. 3,960円/30分で必要な分だけ受講
Tech Teacherでは、授業を受けた分だけ後払いの「従量課金制」を採用しているので、必要な分だけ授業を受講することができます。また、初期費用は入会金22,000円のみです。一般的なプログラミングスクールとは異なり、多額な初期費用がかからないため、気軽に学習を始めることができます。
まとめ
・魅力1. 担当教師によるマンツーマン指導
・魅力2. オーダーメイドのカリキュラム
・魅力3. 3,960円/30分で必要な分だけ受講
質問のみのお問い合わせも受け付けております。
まとめ
これまでstripメソッドについて詳しく説明してきましたがいかがでしたでしょうか。
今回説明した要点をまとめると以下のようになります。
- stripメソッドは先頭と末尾の空白文字や特定文字を削除する
- stripメソッドの構文は「文字列 . strip ( )」
- lstripメソッドは先頭の空白文字や特定文字を削除する
- lstripメソッドの構文は「文字列 . lstrip ( )」
- rstripメソッドは末尾の空白文字や特定文字を削除する
- rstripメソッドの構文は「文字列 . rstrip ( )」
stripメソッドはよく使用するメソッドです。また、見落としがちなミスがいくつかありますので間違えないようにしっかり頭に入れておきましょう。
このブログでは他にもPythonの学習に役立つ情報を発信しています!ぜひご覧ください。
https://www.tech-teacher.jp/blog/python-function/
https://www.tech-teacher.jp/blog/python_beginner/