9.インデックス

インデックスとはプログラム上で何番目?
というのを表す数字です。

インデックスを用いることでプログラムでは
様々なことが行えます。


                     インデックスの表記

四角カッコ で囲みその中に数値を入力する
例:
  [5]

文字のインデックスの場合

In [1]:
print('はじめの一歩'[5])

インデックス番号目の文字を取り出すことができる。

インデックスの数え方

インデックスは 0 から始まるので

文字列の最初の文字を取りたい場合インデックスは 0 
2番目を取りたい場合インデックスは  1になる

※n番目のインデックス値はn-1と、1つズレるので注意

最後の文字を指定する場合は -1 で指定でき
マイナス を付けると末尾から数えることができる。

In [2]:
# 最初
print('あいうえお'[0])

# 2番目
print('あいうえお'[1])

# 最後
print('あいうえお'[-1])

#  最後から数えて3番目
print('あいうえお'[-3])
あ
い
お
う

存在しないインデックス値を指定するとエラーになる。

In [3]:
print('あいうえお'[7])
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-3-35481bea2f07> in <module>()
----> 1 print('あいうえお'[7])

IndexError: string index out of range

IndexError : インデックス値が範囲外の場合に起こるエラー

スライス

Pythonではインデックスを使って
範囲指定でデータを取り出すことができる機能があり
「スライス」と呼んでいる。

スライスの書き方:

[n:m] n番目からm番目まで
[n:]  n番目以降
[:n] n番目まで
[n:m:o] n番目からm番目までo個とばして

In [4]:
# 3番目から5番目
print('あいうえおかき'[2:5])

# 2番目以降
print('あいうえおかき'[1:])

# 3番目まで
print('あいうえおかき'[:3])

# 最初から最後の1つ手前まで
print('あいうえおかき'[0:-1])

# 最初から最後の1つ手前までで1つ飛ばして
print('あいうえおかき'[0:-1:2])
うえお
いうえおかき
あいう
あいうえおか
あうお