文字列

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

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で、文字列から部分的な文字列を取得する方法について解説しました。

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

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

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

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