Python 文字列の抽出
ここでは Python 文字列の抽出する方法についてご説明します。
Python 文字列を抽出するには?
文字列の一部の文字を抽出したい時、他のプログラム言語では substring という名前の関数があることが多いですが、Python にはありません。
Python で文字列から一部の文字を取り出すには、角括弧[]を使って、中にインデックスを指定します。
インデックスは1番目の文字が 0、その次が 1、、と続き、最後の文字は [文字列の長さ] - 1 です。
文字列の長さは len() 関数を使って、len(文字列) のようにして取得できます。
例えば、文字列の 3 文字目を抽出したい時は、次のようにします。
s = "今日は天気が良いです。"
print(s[2])
実行結果は次のようになり、[2]と指定したので、3 文字目の「は」が出力されていますね。
は
範囲を指定して文字列を抽出する
: を使って、文字列[開始のインデックス:終了のインデックス] のように範囲を指定して、その範囲の文字を持つ新しい文字列を取得することもできます。
開始、終了のインデックスは省略可能で、開始のインデックスを指定しなかった場合は「0 から」、終了のインデックスを指定しなかった場合は「最後まで」になります。
終了に指定したインデックスの文字は新しいリストに含まれません。
例えば、文字列[1:4] と指定した場合は、インデックスが 1 から 3 までの文字が抽出できます。
文字列[:3] と指定した場合は、インデックスが 0 から 2 までの文字が抽出できます。
文字列[3:] と指定した場合は、インデックスが 3 から最後までの文字が抽出できます。
では、実際に試してみましょう。
s = "今日は天気が良いです。"
print(s[1:4])
print(s[:3])
print(s[3:])
実行結果は次のようになり、それぞれ上でご説明した通りの範囲の文字を抽出できていますね。
日は天
今日は
天気が良いです。
文字列の最後から何文字かを抽出する
文字列の範囲指定のインデックスにはマイナスの値も設定可能です。
その時は最後の文字が -1、最後から 2 番目の文字が -2、、のように続きます。
マイナスで範囲を指定する時も、終了のインデックスの文字は含まれないので、「最後まで」としたい時は終了のインデックスを指定しないようにします。
例えば、次のような感じでマイナスのインデックスを使って範囲の指定ができます。
s = "今日は天気が良いです。"
print(s[-6:-3])
print(s[-3:])
実行結果は次の通りです。
が良い
です。
文字列の最後から何文字かだけを抽出したいような時は、マイナスのインデックスで指定するほうが簡単ですね!
以上、Python 文字列の抽出する方法についてご説明しました。