文字列型データ-スライス
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
この記事が気に入ったらサポートをしてみませんか?