#はじめに
Pythonで文字列を切り取る際に便利なスライス機能。
[]
内で:
を使い、切り取る文字を指定するが、説明の多くがいまいちピンと来ませんでした。
ここでは自分なりの解釈を掲載してみようと思います。
#スライス []
str_1 = 'python'
print(str_1[2:6])
# 'thon'
例えば、文字列'python'
のthon
のみを取り出したかった場合、スライスを使い[2:6]
と指定すればOKな非常に便利な機能。
しかし、ここでその数字の設定方法に違和感を感じます。
なぜなら、スライスは[開始位置:終了位置]で指定しますが、開始位置は文字列を0から数えた数字、終了位置は文字列を1から数えた数字、になるからです。
慣れればなんてこと無いのだと思いますが、全然しっくりこない。
###捉え方を変えてみる(回りくどくする)
自分なりの解釈で書き変えたものが以下です。
str_1 = 'python'
start = 2
count = 4
print(str_1[start:start+count])
# 'thon'
まずstart
で何文字目からカウントするかを指定します。
t
は0から数えて2文字目なので、2
を指定します。
次に、開始位置から何文字取り出したいか、をcount
で指定します。
'thon'
は4文字なので、4
を指定します。
スライスはこのように解釈します。
[ (開始位置) : (開始位置+文字数) ]
プログラム上では[start:start+count]
で指定します。
これは[2:6]
で指定した場合と同義ですが、しっくりくる説明かなと思います。
#最後に
実際にプログラムを書くときには、こんなに回りくどい方法で書く必要は無いと思います。
ただ、指定の方法に迷ったときなど、思い出すとミスが減らせます。
スライスを開発した経緯などは知らないのでわからないですが、ここで書いたような考え方で開発していたのなら良いな。。。