Pythonで複数スペースを1つのスペースにする方法
Pythonをやっていると色々大変な問題があります。その1つに確実に「空白」という問題がでてくると思います。
複数の空白は避けて通れない
空白問題は避けられない問題の1つだと勝手に思っております。特に複数の空白がある問題が出ることもあると思います。
複数の空白(全角スペース、半角スペース、タブ等)を1つの空白(半角スペース)にしたい
こんな風に思う事ありませんか?僕はあります。最近毎日思っています。
複数の空白を1つにするやり方を調べてみました。paiza.ioで簡単なサンプルと一緒にやってみたいと思います。
複数スペーすのあるコード
コードはこんな感じになります
text = "こん にちは 世界 こんばんは この世界 "
text = text.replace(" ", ":")
text = text.replace(" ", ":")
text = text.replace("\t", "「タブ」")
print(text)
実行すると以下のようになります
こん::::にちは:世界:こんばんは::この世界:
半角スペース→「:」(半角コロン)
全角スペース→「:」(全角タブ)
タブ→「タブ」
と表示されるようにしたのですが、どうやら勉強サイトではタブは半角スペース4つ分になってしまいました。
スペースを置き換たい
理想はこん にちは 世界 こんばんは この世界とスペースを置き換えてやっていきたいです。色々やり方をみてみます
replaceで置き換える
空白の置き換えでよく使うreplaceで試してみます。
text = "こん にちは 世界 こんばんは この世界 "
text = text.replace(" ", "")
text = text.replace(" ", "")
print(text)
実行すると
こんにちは世界こんばんはこの世界
スペースが全て消えてしまいました
全てのスペースを削除するならありですが、複数の空白(半角スペース、全角スペース、タブ等)を1つの空白(半角スペース)にしたいという点ではNGです
splitを使う
空白の削除という点ではsplitがあがると思います。splitを使えば空白の除去ができます
text = "こん にちは 世界 こんばんは この世界 "
text = text.split()
print(text)
実行すると以下のようになります。
['こん', 'にちは', '世界', 'こんばんは', 'この世界']
スペースは1つになったのですが、表示の仕方が今回の理想ではありません。これから何か手を加えればきっと理想の表示になると思うのですがそこから先のやり方がわかりません。わかればおそらくこういうページみたりしないと思います。
joinを使う
Pythonにはjoinメソッドというのがあります。文字列の連結をするのに使われます。書き方は
変数 = 区切り文字.join(変数)
となります。今回は1つの半角スペースにしたいため、splitを使います。
text=" ".join(text.split())
このようになります。半角スペース1つにするためにしています。やっていることはtext = text.split()と同じです。
text = "こん にちは 世界 こんばんは この世界 "
text=" ".join(text.split())
print(text)
実行すると
こん にちは 世界 こんばんは この世界
思った通りの結果になりました。複数の空白を1つの半角スペースになりました。
お役に立ちましたか?
投げ銭 or お仕事をいただけるともっと頑張れます!
・note
・仮想通貨(bitflyer)
・キャッシュ
のどれでも構いません
ビットコインアドレスは以下になります
3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS
この記事が気に入ったらサポートをしてみませんか?