文字列型データ-スライス

1.記事の内容

 Python文字列型データの基礎について4回のシリーズで説明します。第4回目は、文字列型データから、一部の文字列を抜き出す「スライス」について説明します。

***わからない用語があるときは索引ページへ***

2.スライスの使い方

 文字列型データから、一部の文字列を抜き出したいときに使います。
 整数型データa,bを使って、文字列型データのa文字目からb文字目までを抜き出したい場合は、"[]"と":"を使って、
 <文字列型データ>[a-1:b]
の規則で抜き出すことができます。
 サンプルプログラムを使って動きを見てみましょう。

 #mojiretsu_ex6 

str1 = "123456789一二三"
print("元の文字列   :", str1)
 #3文字目から5文字目を抜き出す 
str2 = str1[2 : 5]
print("抜き出した文字列:", str2)

"mojiretsu_ex6.py"を実行したときに出力は、以下のようになります。

元の文字列   : 123456789一二三
抜き出した文字列: 345

3.スライスの考え方

 a文字目からb文字目を抜き出す際、なぜ[a:b]と書くのではなく、[a-1:b]と書くのでしょうか。1つは、柔軟な使い方をするためだと思われます。それはさておき、以下のような考え方をします。

 もともとのスライス(slice)の意味は、「切り分けた一片」という意味があります。文字列を1文字ずつ、切り分けています。切り分け規則を"mojiretsu_ex6.py"のstr1を使って説明します。下記の記号"|"が切り分けた区切りであり、左から順番に、0から番号が振られています。抜き出す文字は、何番目の”|"から何番目の"|”まで挟まれているかを指定して抜き出します。

 0  1  2  3  4  5  6  7  8  9 10  11  12 
 |1 |2 |3 |4 |5 |6 |7 |8 |9 ||二 ||

 そうすると、a文字目からb文字目までは(a-1)番目の"|"から、b番目の"|"で挟まれていることがわかると思います。

 さてこの"|"ですが、右から数えることもできます。右から数える場合は、最後の"|"(上の例では12文字目の三の後ろの"|")は数えられませんが、右から2番目の"|"(三の前の"|")から順に、-1, -2, ・・と指定することができます。

 また、最初の0番目の"|"と、最後の"|"は、指定を省略することができます。
 実際に、サンプルプログラムを見てみましょう。

 #mojiretsu_ex7 .py

str1 = "123456789一二三"
print("元の文字列     :", str1)
print("\n")

str2 = str1[2:5]
print("3文字目から5文字目 :", str2)

str2 = str1[:5]
print("最初の5文字     :", str2)

str2 = str1[5:]
print("最初の5文字を削除  :", str2)

str2 = str1[-3:]
print("最後の3文字     :", str2)

str2 = str1[:-3]
print("最後の3文字を削除  :", str2)

"mojiretsu_ex7.py"の実行結果は以下のようになります。

元の文字列     : 123456789一二三

3文字目から5文字目 : 345
最初の5文字     : 12345
最初の5文字を削除  : 6789一二三
最後の3文字     : 一二三
最後の3文字を削除  : 123456789

前の記事へ



この記事が気に入ったらサポートをしてみませんか?