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
Python