Pythonのリスト(list)は、複数のデータを「順序付けて」格納するデータ型です。この「順序」を利用して、リスト内の特定の要素を1つだけ正確に取り出す操作が「インデックス参照」です。
インデックスとは、リストの各要素に自動的に割り当てられる「住所番号」や「位置番号」のようなものです。
この記事では、リストの要素を参照するためのインデックスの基本的な使い方を解説します。
目次
インデックスとは:0から始まる番号
Python(および多くのプログラミング言語)のインデックスは、0から始まります(0-based indexing)。
- リストの先頭の要素のインデックスは
0です。 - 2番目の要素のインデックスは
1です。 - 3番目の要素のインデックスは
2です。
1. 正のインデックス(0から始まる)
リスト変数名の直後に [](角括弧)を付け、その中に参照したいインデックス番号を指定します。
# ユーザーの権限リスト
user_roles = ["admin", "editor", "guest", "viewer"]
# 0から始まるインデックスで要素を参照
first_role = user_roles[0] # 0番目 (先頭)
second_role = user_roles[1] # 1番目 (2番目)
fourth_role = user_roles[3] # 3番目 (4番目)
print(f"先頭の権限: {first_role}")
print(f"2番目の権限: {second_role}")
print(f"4番目の権限: {fourth_role}")
実行結果:
先頭の権限: admin
2番目の権限: editor
4番目の権限: viewer
注意:IndexError
リストに存在しないインデックスを指定すると、IndexError(インデックスエラー)が発生します。
# user_roles の長さは 4 (インデックスは 0, 1, 2, 3)
# 4番目のインデックスを指定しようとする
# error_role = user_roles[4]
# IndexError: list index out of range
2. 負のインデックス(-1から始まる)
Pythonのインデックス機能が便利なのは、リストの末尾から要素を簡単に参照できる「負のインデックス」が用意されている点です。
[-1]は、リストの最後の要素を指します。[-2]は、リストの最後から2番目の要素を指します。
# ユーザーの権限リスト (先ほどと同じ)
user_roles = ["admin", "editor", "guest", "viewer"]
# 負のインデックスで要素を参照
last_role = user_roles[-1] # -1番目 (末尾)
second_last_role = user_roles[-2] # -2番目 (末尾から2番目)
print(f"末尾の権限: {last_role}")
print(f"末尾から2番目の権限: {second_last_role}")
実行結果:
末尾の権限: viewer
末尾から2番目の権限: guest
len() 関数を使ってリストの長さを調べて len(user_roles) - 1 のように計算しなくても、[-1] だけで末尾の要素にアクセスできるため、非常に便利です。
まとめ
- リストの要素を参照するには
my_list[インデックス]の形式を使います。 - 正のインデックスは
0から始まり、先頭から要素を参照します(例:my_list[0])。 - 負のインデックスは
-1から始まり、末尾から要素を参照します(例:my_list[-1])。 - 存在しないインデックス(範囲外)を指定すると
IndexErrorが発生します。
