Pythonの文字列をスライスする方法とそのときに指定するインデックスの覚え方も紹介します。リストやタプルのスライスとほぼ同じ要領でスライスできます。
今回は文字列のオブジェクトの性質も合わせて解説しています。参考になれば幸いです。
文字列のインデックスとは
文字列はリストやタプルと同じように0から始まる整数のインデックスが割り振られています。
インデックスを指定するとそれに対応する文字を取り出せます。しかし、その文字を変更することはできません。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
>>> moji = 'programming' >>> moji[0] 'p' >>> moji[5] 'a' >>> moji[-3] 'i' >>> moji[24] #超えるとエラー IndexError: string index out of range >>> moji[4] = 'k' #代入できない TypeError: 'str' object does not support item assignment |
- 文字列はstr型のオブジェクトで以下の性質をもつ
- イミュータブル(変更不可)
- イテラブル(反復可能)
- for文でループ可能
- シーケンス
- 整数のインデックスが割り振られている
関連記事
プログラミングをする上でデータ型の話を避けて通ることはできません。 データ型を理解していないとエラーが大量発生してしまうかも。 今回はそんな超重要なデータ型を初心者向けにやさしく解説していきます。 データ型って何?データ[…]
前からスライスする方法
- 「文字列[スタート:ストップ]」
- コロン(:)を使って書く
- スタートとストップのインデックスを指定する。
- 片方だけでもOK
- スタートのインデックスの要素は含まれる
- ストップのインデックスの要素は含まれない
- インデックスを超えると自動で調節する
1 2 3 4 5 6 7 8 9 10 11 |
>>> moji = 'programming' >>> moji[1:3] 'ro' >>> moji[:5] 'progr' >>> moji[:24] #超えると自動調整 'programming' >>> moji[6:] 'mming' >>> moji[25:] #超えると自動調整 '' |
後からスライスする方法
スタートとストップに負のインデックスを渡すだけで逆からスライスできます。このときもインデックスを超えると自動で調節してくれます。
1 2 3 4 5 6 7 8 9 |
>>> moji = 'programming' >>> moji[-4:-1] 'min' >>> moji[:-2] 'programmi' >>> moji[-5:] 'mming' >>> moji[-30:] #超えると自動調整 'programming' |
スライスの覚え方
スライスでインデックスを指定すると上の画像のように区切られます。正のインデックスは文字の前で区切られて、負のインデックスは文字の後ろで区切られます。
まとめ
- 文字列はstr型のオブジェクト
- イミュータブルでイテラブルなシーケンス
- インデックスは越えるとエラー
- スライスのインデックスは越えても自動調節
Pythonの文字列に関する記事たち
5
関連記事
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]