【Python】部分文字列を取得する方法

Python で、文字列から部分文字列を取得する方法について解説します。
部分文字列を取得する
プログラミングをしていると文字列の中から部分的な文字列を取得したくなることがよくあります。そのような場合にはインデックスやスライスを使うことで部分文字列を簡単に取得することができます。
インデックスとスライスの構文は以下のようになります。
data[idx]
data : 対象文字列idx : インデックス番号
data[start:end:step]
data : 対象文字列start : 部分文字列の開始位置end : 部分文字列の終了位置step : ステップ幅
以降では、例を使ってインデックスやスライスの使い方を説明します。
インデックスで特定位置の文字を取得する
文字列の中の特定の位置の文字を取得したい場合は、以下のように [] でインデックス(位置)を指定します。
# インデックスで特定位置の文字を取得する data = "abcdefghijklmnopqrstuvwxyz" print(data[0]) print(data[1]) print(data[2]) print(data[25])
【実行結果】 a b c z
インデックスの数値は 0 から始まることに注意してください。
スライスで部分文字列を取得する
文字列の中の特定の範囲の部分文字列を取得したい場合は、[start:end:step] のようにを指定します。このように特定の範囲を指定することをスライスと言います。
start、end、step の指定の仕方により様々な部分文字列を取得できます。いくつかの例を使ってみてみましょう。
# スライスで部分文字列を取得する data = "abcdefghijklmnopqrstuvwxyz" # start, end, stepを全て指定する print(data[5:10:2]) # startとendを指定する print(data[5:10]) # startのみ指定する print(data[5:]) # endのみ指定する print(data[:10]) # stepのみ指定する print(data[::2]) # マイナスの値を指定する print(data[-5:]) # マイナスの値でstartとendを指定する print(data[-10:-5]) # stepにマイナスの値を指定する print(data[::-1])
【実行結果】 fhj fghij fghijklmnopqrstuvwxyz abcdefghij acegikmoqsuwy vwxyz qrstu zyxwvutsrqponmlkjihgfedcba
start が開始位置、end-1 が終了位置、step が間隔となります。スライスでは end の位置の文字は含まないので注意してください。スライスでは、start、end、step の一部を省略した指定も可能です。
start や end では、マイナス値を指定することで文字列末尾からの文字位置を指定することも可能です。例では末尾の z の位置が -1、y の位置が -2 になります。
step をマイナスにすることで文字列を逆順にすることもよく行われます。
まとめ
Python で、文字列から部分文字列を取得する方法について解説しました。
インデックスやスライスを用いて部分文字列を取得するのは文字列操作の基本になるのでしっかり使えるようにしましょう。
上記で紹介しているソースコードについては GitHub にて公開しています。参考にしていただければと思います。







