Pythonは、文字列間の空白を処理する効率的な方法を持っています。
今回は、PythonのString expandtabs()メソッドについて学んでみましょう。
Python String expandtabs() メソッドの動作例
前述の通り、Python Stringには文字列間のスペースを処理するためのexpandtabs()メソッドが内蔵されています。
Python String の expandtabs()
関数は、基本的に文字列の間に存在する ‘t’ 文字を、ユーザーが引数として与えた空白の量で置き換え、拡張するものです。
構文は以下の通りです。
string.expandtabs(size) |
-
size(オプション)
: このパラメータは、ユーザーが文字列の間に必要とするスペースの大きさを指定します。デフォルトは8です。
例として以下の様になります。
inp_str = "JournalDev provides tutorials on Python and Java."
#print(inp_str) res = inp_str.expandtabs()
print (res)
|
上記の例では、Python の string expandtabs() 関数はパラメータ(size)なしで使用されています。
したがって、’ t’ はデフォルトのサイズである 8 に置き換えられます。
出力されます。
JournalDev provides tutorials on Python and Java.
|
例2:
inp_str = "JournalDev provides tutorials on Python and Java."
print ( "Original string: ,inp_str)
res = inp_str.expandtabs( 4 )
print ( "String after using expandtabs: ,res)
|
上記のコードでは、Python string expandtabs() 関数の引数として size = 4 が渡されています。
このため、文字列全体の「’˶’˶」はサイズ4単位の空白に置き換えられます。
出力されます。
Original string: JournalDev provides tutorials on Python and Java.
String after using expandtabs: JournalDev provides tutorials on Python and Java.
|
例3:
inp_str = "JournalDev provides tutorials on Python and Java."
print ( "Original string: ,inp_str)
res = inp_str.expandtabs( 18 )
print ( "String after using expandtabs: ,res)
|
結果は以下の通りです。
Original string: JournalDev provides tutorials on Python and Java.
String after using expandtabs: JournalDev provides tutorials on Python and Java.
|
この記事もチェック:Pythonのrandint関数の使い方|引数や範囲指定のやり方を解説
Python expandtabs() – エラーと例外
Python 文字列 expandtabs() 関数の引数に浮動小数点数のような非整数型の値を渡そうとすると、TypeError
という例外が発生します。
したがって、expandtabs()関数は整数型の値のみを引数として受け付けることが理解できます。
例えば、以下の様になります。
inp_str = "JournalDev provides tutorials on Python and Java."
res = inp_str.expandtabs( 18.17 )
print ( "String after using expandtabs: ,res)
|
結果は以下の通りです。
TypeError Traceback (most recent call last) <ipython - input - 15 - f2418be436bf> in <module>
1 inp_str = "JournalDev provides tutorials on Python and Java."
- - - - > 2 res = inp_str.expandtabs( 18.17 )
3 print ( "String after using expandtabs: ,res)
TypeError: integer argument expected, got float
|
Python numpy.expandtabs()関数
Python Numpy モジュールには、組み込みの expandtabs() 関数と同じ機能を提供する numpy.char.expandtabs() 関数があります。
numpy.char.expandtabs()`関数は、引数として配列を受け取り、ユーザーがより詳細に指定したい場合には、スペースの大きさを受け取ります。
構文は以下の通りです。
numpy.char.expandtabs(array,size) |
-
array
: 関数が実行しなければならない要素を含みます。 -
size
(オプション): オプションのパラメータで、タブ・スペース文字(例:「 t 」)を置き換えて提供されるスペースのサイズを指定します。
例として以下の様になります。
例1:
import numpy
inp_arr = numpy.array( "JournalDev provides tutorials on Python and Java." )
res = numpy.char.expandtabs(inp_arr)
print ( "String after using expandtabs: ,res)
|
出力されます。
Array of string after using expandtabs: JournalDev provides tutorials on Python and Java.
|
例2:
import numpy
inp_arr = numpy.array( "JournalDev provides tutorials on Python and Java." )
res = numpy.char.expandtabs(inp_arr, 20 )
print ( "Array of string after using expandtabs: ,res)
|
結果を出力すると、以下の様になります。
Array of string after using expandtabs: JournalDev provides tutorials on Python and Java.
|
この記事もチェック:Pythonのmapメソッドの使い方|ラムダ関数や引数が複数の場合の使い方も解説
概要
- Python の文字列 expandtabs() 関数は、実行時に文字列の間にスペースを提供することに対処するために使用されます。
- この関数では、文字列と文字列の間にスペースを挿入します。
- 整数型でない値を渡すとTypeError例外が発生します。
- このように、expandtabs()は実行時にスペースを追加するための効率的な手法であることがわかります。
まとめ
以上、今回はPythonの文字列とNumPyの配列を使って、Python string expandtabs()関数の動作を理解しました。