文字列の空白を削除する【Python】

Python

今回は文字列の空白を削除する方法を紹介します。

ちょっとしたコードですが、自然言語処理などで空白を削除したい時に意外と役に立つコードだと思うのでよければ参考にしてください。

全ての空白を削除

全ての空白を削除するには replace() を使用します。
replace() は文字列中の特定の文字を置き換える関数です。

置き換えれられる文字を空白に、置き換え先の文字を空文字にすれば全ての空白を削除してくれます。

a = ' 1 2 3 4 5 6 '
a = a.replace(' ', '')
print(a)
# '123456'

先頭、末尾、先頭末尾の空白を削除

先頭、末尾、先頭末尾の空白を削除してくれる関数はそれぞれlstrip(), rstrip(), strip()です。

連続して空白があれば全て削除されますので注意しましょう。
また先頭や末尾が空白でなければ削除はされません。空白の時だけ削除をしてくれます。(引数で削除する文字列を指定すれば別ですが…)

先頭

a = ' 1 2 3 4 5 6 '
a = a.lstrip()
print(a)
# '1 2 3 4 5 6 '

a = '   HELLO    '
print(a.lstrip())
# 'HELLO    '

a = 'kon'
a = a.lstrip()
print(a)
# kon

末尾

a = ' 1 2 3 4 5 6 '
a = a.rstrip()
print(a)
# ' 1 2 3 4 5 6'

a = '   HELLO    '
print(a.rstrip())
# '   HELLO'

a = 'kon'
a = a.lstrip()
print(a)
# kon

先頭末尾

a = ' 1 2 3 4 5 6 '
a = a.strip()
print(a)
# '1 2 3 4 5 6'

a = '   HELLO    '
print(a.strip())
# 'HELLO'

a = 'kon'
a = a.lstrip()
print(a)
# kon

先頭、末尾から任意個の空白を削除

replace()に第3引数を与えれば、全てを置き換えるのではなく、先頭から指定した任意個だけ置き換える動作にすることができます。

これを利用して「全ての空白を削除」と同じ容量で空白を空文字に置き換えることで、先頭から任意個の空白を削除することが可能です。

末尾から任意個削除するには[::-1]で文字列を反転させると簡単に実現できます。

a = ' 1 2 3 4 5 6 '
print(a.replace(' ', '', 3))
# 123 4 5 6 
print(a.replace(' ', '', 4))
# 1234 5 6 
print(a[::-1].replace(' ', '', 3)[::-1])
#  1 2 3 456
print(a[::-1].replace(' ', '', 4)[::-1])
#  1 2 3456

コメント