Python: 文字列の切り出し(範囲取得)方法 []
Pythonで文字列の一部を切り出す(範囲取得する)場合は、 ブラケット演算子[]を使います。 書式は次の通りです。
書式
文字列[開始インデックス:終了インデックス + 1] 文字列[開始インデックス:終了インデックス + 1:ステップ]
「開始インデックス」と「終了インデックス + 1」の間は「コロン:」で区切ります。 ステップ(間隔)を指定することもできます。 先頭文字のインデックスは「0」です。
具体的なコードで見ていきます。
先頭から3文字目までを取得する場合は「文字列[0:3]」、
2番目から4文字目までを取得する場合は「文字列[2:4]」と指定します。
s = "abcde" # 先頭から3文字目まで print(s[0:3]) # abc # 2番目から4文字目まで print(s[1:4]) # bcd
インデックスを省略した場合
「開始インデックス」を省略した場合は「0」指定と同じになり、
先頭から取得します。
「終了インデックス + 1」を省略した場合は「len(文字列)」指定と同じになり、
最後まで取得します。
s = "abcde" # s[0:2] と同じ print(s[:2]) # ab # s[1:len(s)] と同じ print(s[1:]) # bcde
インデックスに負の値を指定した場合
インデックスに負の値を指定した場合は、
最後からの文字数を指定することになります。
「-1」が末尾文字のインデックスです。
「文字列[0:-4]」とすることで最後の4文字を取り除くことができ、
次のように「拡張子を取り除きたい」場合などに使えます。
s = "test.txt" # 最後の4文字を取り除く print(s[0:-4]) # test
ステップ数(間隔)を指定する
文字を取り出すステップ数(間隔)を指定することもできます。 「終了インデックス + 1」の後に「コロン:」で区切ってステップ数を指定します。
文字列[開始インデックス:終了インデックス + 1:ステップ数]
s = "abcdefg" # ステップ数を指定 print(s[::2]) # aceg # 2番目の文字からステップ数2で取り出す print(s[1::2]) # bdf