この記事では、Pythonで文字列中の空白を削除する方法を解説します。
文字列を扱う場合、無駄な空白が含まれていたり空白の数が統一されていないと厄介だったりします。そんな時は、空白を削除、または統一して扱いやすい文字列を生成しましょう!
それでは、文字列中の空白を削除する方法を見ていきます。
すべての空白を削除する
文字列中の全ての空白を削除するには、str
型のreplace()
メソッドを使うと簡単です。replace
メソッドは任意の文字列を指定した文字列に置き換えるメソッドです。
str.replace(old, new[, count])
old
引数の文字列をnew
引数の文字列で置き換えます。今回の場合では、空白を空文字に置き換えることで文字列中の空白を全て削除できます。
text = 'A B C D E'
result = text.replace(' ', '')
print(result)
実行結果
ABCDE
これで全ての空白を削除できました。
先頭と末尾の空白を削除する
文字列の先頭および末尾の空白を削除したい場合は、str
型のstrip()
メソッドを使います。strip()
メソッドは指定した文字単位で先頭および末尾から文字列を削るメソッドです。
str.strip([chars])
引数を指定しないことで先頭および末尾の空白を全て削除することができます。
text = ' A B C D E '
result = text.strip()
print(result)
実行結果
A B C D E
先頭の空白のみ削除したい場合は、str
型のlstrip()
メソッド、末尾の空白のみ削除したい場合はstr
型のrstrip()
メソッドを使います。
使い方はどちらもstrip()
メソッドと同じです。
text = ' A B C D E '
result = text.lstrip()
print(result)
text = ' A B C D E '
result = text.rstrip()
print(result)
実行結果
A B C D E
A B C D E
文字列中の空白を残したい場合に便利です。
連続している空白を1つにする
連続している空白を1つにしたい場合は、re
モジュールのsub()
メソッドを使います。sub()
メソッドは指定したパターンにマッチした箇所を任意の文字列に置き換えるメソッドです。
import re
re.sub(pattern, repl, string, count=0, flags=0)
string
引数に指定した文字列内のpattern
引数にマッチした箇所をrepl
引数に置き換えます。今回の場合は、連続した空白をパターンで指定し、空白1つに置き換えます。
import re
text = ' A B C D E '
res = re.sub('\s+', ' ', text)
print(res)
実行結果
A B C D E
先頭と末尾に空白が残ってしまうので先にstrip()
メソッドで前後の空白を削除しておく。
import re
text = ' A B C D E '
res = re.sub('\s+', ' ', text.strip())
print(res)
実行結果
A B C D E
これで文字列中の空白を1つに統一できました。