文字列を使ったPythonのスライスをColaboratoryで実行
指定した範囲を切り取ったり、逆順にしたりするPythonのスライスを文字列を
使ってColaboratoryで実行します。そして、実行した様子とその解説を投稿します。
リストを使ったPythonのスライスについては下の投稿になります。
「PythonのスライスをColaboratoryで実行 リスト」
目次
1.スライスについて
・スライスの使い方
2.文字列のスライスの使い方
・始まり、終わりの範囲を指定する場合
・始まり、終わりの範囲(どちらか片方)を指定しない場合
・始まり、終わり両方を指定しない場合
・間隔を指定する場合
・マイナスを指定する場合
3.逆順で表示
1.スライス(slice)について
スライス(slice)は薄く切り取る、薄く切るという意味になります。
なので、Pythonのスライスは文字列やリストデータを切り取るイメージになります。
●スライスの使い方
文字列のスライスの使い方はリストと同じでコロン(:)を使って指定する範囲の始まり、終わり、間隔を指定します。
イメージ
変数=”文字列”
変数[始まり:終わり:間隔]
変数[2:5]や変数[:3]、変数[::2]のようにして使います。
文字列を入れた変数に対してリストで使うカッコ[]とコロン(:)で切り取る範囲の始まり、終わり、間隔を指定します。
2.文字列のスライスの使い方
・始まり、終わりの範囲を指定する場合
1 2 3 4 5 6 7 |
moji="ABCDEFG" print("moji[0:3]=",moji[0:3]) print("moji[2:5]=",moji[2:5]) print("moji[1:6]=",moji[1:6]) print("moji[4:7]=",moji[4:7]) print("moji[3:4]=",moji[3:4]) |

スライスで文字列データを取り出すときはリストと同じで0番目から取り出します。
moji=”A B C D E F G”
番号 0 1 2 3 4 5 6
moji[0:3]は要素番号0~2までのデータを取り出します。ABC
moji[2:5]は要素番号2~4までのデータを取り出します。CDE
moji[3:4]は要素番号3のデータを取り出します。D
・始まり、終わりの範囲(どちらか片方)を指定しない場合
1 2 3 4 5 6 7 8 9 10 |
moji="ABCDEFG" print("moji[:3]=",moji[:3]) print("moji[3:]=",moji[3:]) print("moji[:6]=",moji[:6]) print("moji[6:]=",moji[6:]) print("moji[:0]=",moji[:0]) print("moji[0:]=",moji[0:]) |

moji=”A B C D E F G”
番号 0 1 2 3 4 5 6
moji[:3]の始まりの部分を書かない場合は文字列の最初にあたる”A“から取り出します。
moji[3:]の終わりの部分を書かない場合は文字列の最後にあたる”G“まで取り出します。
moji[:0]の始まりの部分を書かない場合は始まりが0番なので、データを取り出せないです。
moji[0:]の終わりの部分を書かない場合は0番のAから最後のGまで取り出します。
・始まり、終わり両方を指定しない場合
1 2 |
moji="ABCDEFG" print("moji[:]=",moji[:]) |

変数[始まり:終わり:間隔]の始まりを指定しない場合は文字列の最初から、終わりを指定しない場合は文字列の最後まで取り出すので、”ABCDEFG“を取り出します。
・間隔を指定する場合
1 2 3 4 5 |
moji="ABCDEFG" print("moji[::2]=",moji[::2]) print("moji[::3]=",moji[::3]) print("moji[1::2]=",moji[1::2]) |

文字列の間隔を空けて取り出したい場合は[ : : ]の1番右側に値を指定します。
変数[始まり:終わり:間隔]←この位置
moji=”A B C D E F G”
番号 0 1 2 3 4 5 6
moji[::2]は始まりのAから1個飛ばしで表示します。ACEG
moji[::3]は始まりのAから2個飛ばしで表示します。ADG
moji[1::2]は1番目のBから1個飛ばしで表示します。BDF
・マイナスを指定する場合
1 2 3 4 5 6 7 |
moji="ABCDEFG" print("moji[:-3]=",moji[:-3]) print("moji[-3:]=",moji[-3:]) print("moji[:-6]=",moji[:-6]) print("moji[-6:]=",moji[-6:]) |

マイナスで指定する場合は文字列の後ろから数えます
moji=”A B C D E F G”
番号 0 1 2 3 4 5 6
moji[:-3]はABCDEFGの後ろ3つEFGを取り除いた文字列になります。ABCD
moji[-3:]はABCDEFGの後ろ3つEFGの文字列を取り出します。EFG
3.逆順で表示
1 2 3 |
moji="ABCDEFG" print("moji[::-1]=",moji[::-1]) |

文字列を逆順で表示するときは 変数[始まり:終わり:間隔]の間隔を指定する場所に-1を指定すると逆順になります。
逆順にした文字列を変数に入れて取り出す場合は下になります。
1 2 3 4 5 6 |
moji="ABCDEFG" moji_1=moji[::-1] print("moji_1[0:1]=",moji_1[0:1]) print("moji_1[6:7]=",moji_1[6:7]) |

変数moji_1にはGFEDCBAの文字列が入っています。
moji_1[0:1]は”G“を取り出し、moji_1[6:7]は”A“を取り出します。