Categories: Python

【Python】文字列の空白を削除する方法を解説

この記事では、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つに統一できました。

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago