Pythonで文字列を切り詰めるとはどういう意味ですか、また、どのように切り詰めることができますか?文字列の周りの空白を取り除くことを、専門用語では文字列のトリミングと呼びます。
今回は、Pythonで文字列をトリミングする3つの方法について説明します。
テクニック1:Pythonのstrip()で文字列を切り詰める
Pythonの string.strip() 関数は基本的に、特定の文字列から先頭と末尾のスペースをすべて削除します。
したがって、Pythonで文字列を完全に切り詰めるには、このメソッドを使用します。
構文は以下の様な感じです。
string.strip(character) |
-
character: これはオプションのパラメータです。strip()関数に渡されると、文字列の両端から特定の文字を削除します。
例えば、以下の様になります。
inp_str = " Python@JournalDev"
print("Input String:")
print(inp_str)
res = inp_str.strip()
print(")
print(res)
|
結果は、以下の通りになります。
Input String:
Python@JournalDev
String after trimming extra leading and trailing spaces:
Python@JournalDev |
例2:
inp_str = "@@Python JournalDev@@@@"
print("Input String:")
print(inp_str)
res = inp_str.strip('@')
print(")
print(res)
|
上記のコードでは、strip()関数に両端を切り取る文字として’@’を渡しています。
出力は以下のようになります。
Input String:
@@Python JournalDev@@@@String after trimming extra leading and trailing spaces:
Python JournalDev |
NumPyのstrip()メソッド
Python NumPy モジュールには、Python の string.strip() 関数に似た機能を持つ numpy.core.defchararray.strip() メソッドが内蔵されています。
このメソッドは、Pythonのstring.strip()関数に似た機能を持ち、配列やその他の反復処理可能な要素に埋め込まれた文字列を切り詰めるために使用されます。
構文は以下の様な感じです。
numpy.core.char.strip(array, chars=value)
|
-
array: 入力配列で、トリミングを行います。 -
chars: オプションのパラメータです。numpy.strip() 関数に渡された場合、配列の各要素の両端から特定の文字を切り出します。
例えば、以下の様になります。
import numpy
arr = numpy.array([' JournalDev', 'Python '])
print("Input Array:")
print(arr)
res = numpy.char.strip(arr)
print("Array after performing strip():")
print(res)
|
結果は、以下の通りになります。
Input Array:[' JournalDev' 'Python ']Array after performing strip():['JournalDev' 'Python'] |
例2:
import numpy
arr = numpy.array([' JournalDev', 'Python '])
print("Input Array:")
print(arr)
res = numpy.char.strip(arr, chars='Python')
print("Array after performing strip():")
print(res)
|
結果を出力すると、以下の様になります。
Input Array:[' JournalDev' 'Python ']Array after performing strip():[' JournalDev' ' '] |
テクニック2: Python lstrip()
Python の string.lstrip() 関数は、特定の入力文字列から先頭の空白をすべて削除します。
構文は以下の通りです。
string.lstrip(character) |
-
character: これはオプションのパラメータです。lstrip()関数に渡された場合、入力文字列の先頭から渡された特定の文字を削除します。
例えば、以下の様になります。
inp_str = " Python@JournalDev **"
print("Input String:")
print(inp_str)
res = inp_str.lstrip()
print(")
print(res)
|
結果は、以下の通りになります。
Input String:
Python@JournalDev **
String after trimming Extra leading spaces:Python@JournalDev **
|
例2:
inp_str = "****Python@JournalDev*"
print("Input String:")
print(inp_str)
res = inp_str.lstrip("*")
print(")
print(res)
|
上で見たように、lstrip()関数は入力文字列の先頭部分のうち、’ *’のみを切り取ります。
結果は以下の通りです。
Input String:
****Python@JournalDev*
String after trimming Extra leading characters:Python@JournalDev*
|
この記事もチェック:Pythonで文字列の一部分の置換をしたり削除をする方法
NumPy lstrip() メソッド
Python NumPy モジュールには numpy.core.defchararray.lstrip() メソッドがあり、 string.lstrip() 関数と同じ機能を提供します。
この関数は、入力配列の各要素から、先頭の空白文字や特定の文字をすべて切り捨てます。
構文は以下の様な感じです。
numpy.char.lstrip(array, chars=value)
|
例 1:
例1:
import numpy
arr = numpy.array(['@@!JournalDev', '@%Python '])
print("Input Array:")
print(arr)
res = numpy.char.lstrip(arr, chars="!%@")
print("Array after performing lstrip():")
print(res)
|
結果は、以下の通りになります。
Input Array:
['@@!JournalDev' '@%*Python ']
Array after performing lstrip():['JournalDev' 'Python ']
|
例として以下の様になります。
import numpy
arr = numpy.array([' JournalDev', ' Python'])
print("Input Array:")
print(arr)
res = numpy.char.lstrip(arr)
print("Array after performing lstrip():")
print(res)
|
結果を出力すると、以下の様になります。
Input Array:
[' JournalDev' ' Python']
Array after performing lstrip():['JournalDev' 'Python']
|
テクニック3: Python rstrip()
Python の string.rstrip() メソッドは、特定の入力文字列から末尾の空白をすべて削除します。
構文は以下の通りです。
string.rstrip(character) |
-
character: これはオプションのパラメータです。rstrip()関数に渡された場合、入力文字列の末尾から渡された文字を削除します。
例えば、以下の様になります。
inp_str = "Python@JournalDev "
print("Input String:")
print(inp_str)
print("Length of Input String:")
print(len(inp_str))
res = inp_str.rstrip()
print(")
print(res)
print("Length of Input String after removing extra trailing spaces:")
print(len(res))
|
ここでは、 string.len() 関数を使って、トリミング前とトリミング後の文字列の長さを取得しました。
これにより、末尾の余分な空白が切り取られていることが分かります。
出力は以下の通りです。
Input String:
Python@JournalDev Length of Input String:
20String after trimming Extra trailing spaces:Python@JournalDevLength of Input String after removing extra trailing spaces:
17 |
例として以下の様になります。
inp_str = "Python@JournalDev****"
print("Input String:")
print(inp_str)
print("Length of Input String:")
print(len(inp_str))
res = inp_str.rstrip("*")
print(")
print(res)
print("Length of Input String after removing extra trailing spaces:")
print(len(res))
|
結果は以下の通りです。
Input String:
Python@JournalDev****
Length of Input String:
21String after trimming Extra trailing characters:Python@JournalDevLength of Input String after removing extra trailing spaces:
17 |
この記事もチェック:Pythonのf-stringを使って文字列に変数、関数を展開する方法
NumPy rstrip() メソッド
PythonのNumPyモジュールには、入力配列の各要素から末尾の空白をすべて取り除く numpy.core.defchararray.rstrip(array, chars) メソッドがあります。
構文は以下の通りです。
numpy.char.rstrip(array, chars=value)
|
例えば、以下の様になります。
import numpy
arr = numpy.array([' JournalDev ', ' Python '])
print("Input Array:")
print(arr)
res = numpy.char.rstrip(arr)
print("Array after performing rstrip():")
print(res)
|
結果は、以下の通りになります。
Input Array:
[' JournalDev ' ' Python ']
Array after performing rstrip():[' JournalDev' ' Python']
|
例2:
import numpy
arr = numpy.array([' JournalDev****', ' Python!!'])
print("Input Array:")
print(arr)
res = numpy.char.rstrip(arr, chars="*!")
print("Array after performing rstrip():")
print(res)
|
上記の例では、numpy.rstrip()関数にトリミングする文字として’˶‾‾‾‾’を渡しています。
これらの文字は、配列の各要素の後端から切り取られています。
出力されます。
Input Array:
[' JournalDev****' ' Python!!']
Array after performing rstrip():[' JournalDev' ' Python']
|
Pythonトリムストリングが一目瞭然!
- Pythonで文字列を切り詰めるとは、入力文字列の先頭と末尾から余分な空白や特定の文字群を削除することです。
- Pythonで文字列を切り詰めるには、3つの組み込み関数、 strip() 、 lstrip() 、 rstrip() メソッドをそれぞれ使用します。
- Pythonのstring.strip()メソッドは、特定の文字列の前と後ろの空白を削除します。
- Pythonのstring.lstrip()メソッドは、文字列の先頭の空白をすべて削除します。
- string.rstrip()メソッドは、文字列の末尾の空白をすべて削除します。
この記事もチェック:Pythonで文字列の末尾の改行や空白を切り取る(ストリップ)する方法を解説する
まとめ
この記事では、Pythonで文字列をトリミングするさまざまな方法について理解しました。