原文: How to Substring a String in Python
Python では、文字列の一部を色々な形で切り出すことができます。この操作はよく‘slicing’(スライス) と呼ばれます。
構文は次の通りです。
string[start: end: step]
上記において、
start
: 部分文字列の開始インデックスです。このインデックス番号の位置にある文字は、部分文字列に含まれます。start
が指定されなかった場合は、0 が使用されます。
end
: 部分文字列の終了インデックスです。このインデックス番号の位置にある文字は、部分文字列に含まれません。end
が指定されなかった場合、または文字列の長さ (length) 以上の値が指定された場合は、デフォルト値として文字列の長さと同じ値が使用されます。
step
: 開始位置の後、何文字ごとに部分文字列に含めるかを指定します。デフォルト値は 1 です。step
の値が指定されなかった場合、1 が使用されます。
基本的な使い方
string[start:end]
: インデックス start
番目から end
-1 番目までのすべての文字を取得する
string[:end]
: 文字列の最初から end
-1 番目までのすべての文字を取得する
string[start:]
: インデックス start
番目から文字列の最後までのすべての文字を取得する
string[start:end:step]
: インデックス start
番目から end
-1 番目までの、step
文字ごとの文字を取得する
例
1. 文字列の最初の 5 文字を取得する
string = "freeCodeCamp"
print(string[0:5])
出力:
> freeC
注: print(string[:5])
は print(string[0:5])
と同じ結果を返します。
2. 文字列の 3 文字目から、長さ 4 文字分の部分文字列を取得する
string = "freeCodeCamp"
print(string[2:6])
出力:
> eeCo
3. 文字列の最後の文字を取得する
string = "freeCodeCamp"
print(string[-1])
出力:
> p
start
または end
のインデックス番号は負の数も指定できることに注目してください。負のインデックスは、文字列の最初ではなく最後から数え始めることを意味します (つまり、右から左へ)。
例えばインデックス -1 は文字列の最後の文字を表し、-2 は最後から 2 番目の文字を表します。
4. 文字列の最後の 5 文字を取得する
string = "freeCodeCamp"
print(string[-5:])
出力:
> eCamp
5. 最初の 1 文字と最後の 4 文字を除くすべての文字を含む部分文字列を取得する
string = "freeCodeCamp"
print(string[1:-4])
出力:
> reeCode
6. 文字列から 2 文字ごとに取得する
string = "freeCodeCamp"
print(string[::2])
出力:
> feCdCm