文字列

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

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

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] のようにを指定します。このように特定の範囲を指定することをスライスと言います。

startendstep の指定の仕方により様々な部分文字列を取得できます。いくつかの例を使ってみてみましょう。

# スライスで部分文字列を取得する
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 の位置の文字は含まないので注意してください。スライスでは、startendstep の一部を省略した指定も可能です。

startend では、マイナス値を指定することで文字列末尾からの文字位置を指定することも可能です。例では末尾の z の位置が -1、y の位置が -2 になります。

step をマイナスにすることで文字列を逆順にすることもよく行われます。

まとめ

Python で、文字列から部分文字列を取得する方法について解説しました。

インデックスやスライスを用いて部分文字列を取得するのは文字列操作の基本になるのでしっかり使えるようにしましょう。

ソースコード

上記で紹介しているソースコードについては GitHub にて公開しています。参考にしていただければと思います。

あわせて読みたい
【Python Tech】プログラミングガイド
【Python Tech】プログラミングガイド
ABOUT ME
ホッシー
ホッシー
システムエンジニア
はじめまして。当サイトをご覧いただきありがとうございます。 私は製造業のメーカーで、DX推進や業務システムの設計・開発・導入を担当しているシステムエンジニアです。これまでに転職も経験しており、以前は大手電機メーカーでシステム開発に携わっていました。

プログラミング言語はこれまでC、C++、JAVA等を扱ってきましたが、最近では特に機械学習等の分析でも注目されているPythonについてとても興味をもって取り組んでいます。これまでの経験をもとに、Pythonに興味を持つ方のお役に立てるような情報を発信していきたいと思います。どうぞよろしくお願いいたします。

※キャラクターデザイン:ゼイルン様
記事URLをコピーしました