Python3|文字列の一部を取得したい|スライスの使い方


Python3で文字列の一部を抽出する方法

Python3では部分文字列を取得する方法としてスライスという機能が準備されています。

スライスは文字列[開始, 終了-1, step]という書式で書きます。

また開始、終了、ステップはどれも省略可能です。

尚、文字列の先頭は0文字目と考えます。

例えばstr = “0123”のときstr[0:2]と書くと0文字目から2-1文字目までをスライスするので“01”を取得できます。

任意の1文字を抽出する場合

任意の1文字を取得する場合は文字列[数値]のように書きます。

【サンプルプログラム1-1】

文字列[-1]は最後の1文字を表します。

2文字以上の部分文字列を取得する場合

2文字以上の部分文字列を取得するには文字列[開始:終了-1]と書きます。

【サンプルプログラム1-2】

例えば、str = “abcdefg”のとき、str[0:2]0文字目~2-1文字目を取得するので“ab”となります。

str[:2]は開始を0とし、2-1文字目までを取得するので、0文字目~1文字目を取得します。結果は“ab”になりますね。

str[-3:]後ろから3文字目(e)~最後の文字(g)までを意味するので“efg”になります。

ステップを利用して部分文字列を取得する場合

ステップを利用して部分文字列を取得するには文字列[開始, 終了-1, step]という書式で書きます。

例えば、str = “123456789”のとき、奇数だけを抽出するにはstr[0:10:2]と書きます。
結果は“13579”となります。“123456789”をスライスで表すには0~文字数 + 1となる点に注意して下さい。

逆に偶数だけを抽出するにはstr[1:10:2]と書きます。“23456789”からstep2で文字を抽出しているので、2(3)4(5)6(7)8(9)となり、結果は“2468”ですね。

【サンプルプログラム1-3】

str[0:10:2]において、[0:10]“メガ盛り塩やきそば”を表していて、この文字列を対象にstep2でスライスするわけですから(ガ)(り)(や)(そ)となり、結果は“メ盛塩きば”になりますね。

str[2:10:3]であれば[2:10]“盛り塩やきそば”を表していて、この文字列を対象にstep3でスライスするわけですから(り)(塩)(き)(そ)となり、結果は“盛やば”となりますね。

また、str = “逃げるは恥だが全力逃走!”のときstr[::4]と書くと、先頭から末尾までの文字列全体を対象に(げ)(る)(は)(だ)(が)(全)(逃)(走)(!)となるので、結果は“逃恥力”となりますね。なんだか新たなスキルを意味するような文字列を抽出してしまいましたね(笑)。

尚、「開始」と「終了」を省略してstr[:]と書くと対象となる文字列全体を表します。ここでさらに、「開始」、「終了」、「step」を全て省略してstr[::]と書いてもやはり対象となる文字列全体を表します。

例えばstr = “apple”のとき、str[:]str[::]“apple”を意味します。

Python3リファレンスTOPへ戻る

あわせて読みたい