Pythonで文字列の中にあるスペース「A B C DE」を削除して「ABCDE」のようにしたいと思い調べた時の備忘録です。
文字列の中にある全角半角スペースを削除する方法
結論から言うとsplit()とjoin()を組み合わせた以下のコードで消せました。
item_str = "A B C あ いう"
item_str = ''.join(item_str.split())
print(item_str) #ABCあいう
split()とjoin()を組み合わせで半角と全角スペースが消せる
どういう仕組みで消しているか深掘りです。
split()はスペースごとに文字列は分割して配列(リスト)にしてくれます。
item_str = "A B C あ いう"
arr = item_str.split()
print(arr) #["A", "B", "C", "あ", "いう"]
split()で配列に分割した文字列を次にjoinで再結合します。
item_str = "A B C あ いう"
arr = item_str.split()
noSpace = ''.join(arr)
print(noSpace) #"ABCあいう"
”.join(arr)の部分を「’#’.join(arr)」にした場合「”A#B#C#あ#いう”」のように配列の間に#をつけて結合してくれます。
おまけ replace()では全角スペースが消せなかった
もしかしたらreplace()でも全角スペースを消せたかもしれませんが、素直にやっても全角スペースは消えなかったです。
item_str.replace(‘ ’, ”) #消せなかった
文字コードでもうまく置換できず、消すとしても正規表現使ったりしそうな雰囲気だったので深追いしませんでした。
消す対象が半角スペースだけならreplace()で置換してもいいかもしれないですね。
item_str.replace(”, ”)
おわり
replace()はJavaでもSQLでもJavascriptでも使ったとがあるので馴染みやすく感じていたのでreplace()でスペース除去しようと考えて少しはまりました。
メソッドを組み合わせることで簡単にスペースが消せるのかと新たな手法を学べて調べてよかったです。