Pythonでは、文字列から特定の範囲を抽出するためにスライスという機能を使用します。スライスは、開始位置のインデックスから終了位置のインデックスまでの部分文字列を取得することができます。
スライスの基本
スライスの基本的な書式は次の通りです。
文字列[開始インデックス:終了インデックス]
範囲の最初の文字のインデックスを開始インデックスに指定し、範囲の最後の文字のインデックスに +1 した値を終了インデックスとして指定します。
例えば、”FLOWER”という文字列から”LOW”という部分文字列を取得する場合、開始インデックスに 1 、終了インデックスに 4 を指定します。
str = "Flower"
print(str[1:4]) # Output: "low"
開始インデックスまたは終了インデックスを省略する
スライス機能を使って部分文字列を取得する場合、開始インデックスまたは終了インデックスを省略することができます。
開始インデックスを省略した場合は 0 が指定されたものとみなされます。0 は文字列の最初の文字のインデックスなので、開始インデックスを省略した場合は文字の先頭から部分文字列を取得するという意味になります。
print("Flower"[:3]) # Output: "Flo"
終了インデックスを省略した場合は len (文字列) の値が指定されたものとみなされます。len 関数の引数に文字列を指定した場合は文字列の文字数を返しますので、終了インデックスを省略した場合は文字列の最後までを取得するということになります。
print("Flower"[4:]) # Output: "er"
開始インデックスと終了インデックスを共に省略した場合は、文字列の先頭から文字列の最後までとなるので、元になる文字列と同じ文字列を取得することになります。
print("Flower"[:]) # Output: "Flower"
部分文字列を取得する時のステップ数を指定する
スライス機能を使て部分文字列を取得する場合、開始インデックスから終了インデックスまでの範囲の文字をすべて取得していました。これを最初の文字から開始して指定した文字毎に文字を取得したい場合にはステップ数を指定することができます。
書式は次の通りです。
文字列[開始インデックス:終了インデックス:ステップ数]
例えば、”京都府京都市左京区吉田本町”という文字列に対して開始インデックスを 1 、終了インデックスを 12 とすると次の部分文字列を取得することができます。
str = "京都府京都市左京区吉田本町"
print(str[1:12]) # Output: "都府京都市左京区吉田本"
範囲内のすべての文字ではなく 2 文字毎に文字を取得する場合は次のように実行します。
print("京都府京都市左京区吉田本町"[1:12:2]) # Output: "都京市京吉本"
以上がPythonで文字列の範囲指定による抽出についての基本的な説明です。この機能を理解し活用することで、文字列操作の幅が広がります。