Pythonで文字列内のスペースを削除する方法
この文章は日本語の「紹介」についての文です。
このチュートリアルでは、Pythonで文字列からホワイトスペースを削除するために使用できるさまざまな方法の例を提供します。
Pythonの文字列は変更不可のため、その値を変えることはできません。文字列の値を操作するメソッドは新たな文字列を返します。
Info
このチュートリアルの例では、Pythonの対話型コンソールをコマンドラインで使用して、スペースを削除するさまざまな方法を示しています。例では、以下の文字列を使用します。
s = ' Hello World From Silicon Cloud \t\n\r\tHi There '
出力は次の通りです:
Hello World From Silicon Cloud Hi There
この文字列には、スペース( )、タブ(\t)、改行(\n)、およびキャリッジリターン(\r)など、異なる種類の空白文字と改行文字が含まれています。
strip()メソッドを使用して、先頭および末尾のスペースを削除する。
Pythonの文字列のstrip()メソッドは、文字列から先頭と末尾の文字を削除します。削除するデフォルトの文字はスペースです。
以下の文字列変数を宣言します。
文字列変数を宣言します。
- s = ‘ Hello World From Silicon Cloud \t\n\r\tHi There ‘
先頭と末尾の空白を取り除くためにstrip()メソッドを使用します。
- s.strip()
出力は次の通りです:
‘Hello World From Silicon Cloud \t\n\r\tHi There’
もし、先頭のスペースや末尾のスペースだけを取り除きたい場合は、lstrip()メソッドとrstrip()メソッドを使用できます。
replace()メソッドを使って、すべてのスペースを削除してください。
文字列から、単語の間を含め、すべての空白文字を削除するために、replace() メソッドを使用することができます。
文字列変数を宣言する。
- s = ‘ Hello World From Silicon Cloud \t\n\r\tHi There ‘
空白を空文字列で置き換えるために、replace()メソッドを使用してください。
- s.replace(” “, “”)
出力は:
‘HelloWorldFromSilicon Cloud\t\n\r\tHiThere’
join()やsplit()メソッドを使用して、重複するスペースと改行文字を削除します。
split()メソッドを使用して、重複するすべての空白文字と改行文字を取り除くことができます。この例では、split()メソッドは文字列をリストに分割し、デフォルトの区切り文字である任意の空白文字を使用します。それから、join()メソッドはリストを一つの文字列に戻し、単語ごとに単一のスペース(” “)で結合します。
文字列変数を宣言する。
- s = ‘ Hello World From Silicon Cloud \t\n\r\tHi There ‘
重複したスペースと改行文字を取り除くために、join() メソッドと split() メソッドを一緒に使用してください。
- ” “.join(s.split())
出力は以下の通りです。
‘Hello World From Silicon Cloud Hi There’
translate()メソッドを使用して、すべてのスペースと改行文字を削除してください。
translate()メソッドを使用すると、すべての空白文字と改行文字を削除することができます。 translate()メソッドは、指定された文字を辞書やマッピングテーブルで定義された文字で置き換えます。次の例では、カスタム辞書を使用しています。その辞書には、すべての空白文字が含まれるstring.whitespace文字列定数が使用されています。カスタム辞書{ord(c): None for c in string.whitespace}は、string.whitespaceのすべての文字をNoneで置き換えます。
stringモジュールをインポートして、string.whitespaceを使用できるようにします。
- import string
文字列変数を宣言してください。
- s = ‘ Hello World From Silicon Cloud \t\n\r\tHi There ‘
全ての空白文字を削除するために、translate()メソッドを使用してください。
- s.translate({ord(c): None for c in string.whitespace})
出力は以下の通りです。
出力結果は次の通りです。
出力は次のようになります。
‘HelloWorldFromSilicon CloudHiThere’
正規表現を使用して、空白文字を削除する。
re.sub() 関数を使用して、空白文字をマッチさせ、削除するために正規表現も利用できます。
この例では、正規表現を使用して空白文字を削除する方法を示すために、以下のファイルregexspaces.pyを使用しています。
import re
s = ' Hello World From Silicon Cloud \t\n\r\tHi There '
print('Remove all spaces using regex:\n', re.sub(r"\s+", "", s), sep='') # \s matches all white spaces
print('Remove leading spaces using regex:\n', re.sub(r"^\s+", "", s), sep='') # ^ matches start
print('Remove trailing spaces using regex:\n', re.sub(r"\s+$", "", s), sep='') # $ matches end
print('Remove leading and trailing spaces using regex:\n', re.sub(r"^\s+|\s+$", "", s), sep='') # | for OR condition
コマンドラインからファイルを実行してください。
python3 regexspaces.py
以下の出力結果が得られます。
Remove all spaces using regex:
HelloWorldFromSilicon CloudHiThere
Remove leading spaces using regex:
Hello World From Silicon Cloud
Hi There
Remove trailing spaces using regex:
Hello World From Silicon Cloud
Hi There
Remove leading and trailing spaces using regex:
Hello World From Silicon Cloud
Hi There
結論
このチュートリアルでは、Pythonで文字列から空白文字を削除するために使用できるいくつかの方法を学びました。Pythonの文字列についての学習を続けてください。