Indices in Python
Pythonのインデックスはシーケンス内のポジションを表わします。 最も一般的には、これは文字列やリスト内の位置を指します。 Pythonにおけるインデックスは、他の多くのプログラミング言語と同様に、0から始まります。 例えば、以下のようになります。
indexValueList =
このリスト内の各値は、それ自身のインデックスも表しています。 リストの最初の項目は実際にはインデックス0であることに注意。 同様に、リストへの最大インデックスはリストの長さから1を引いたものに等しい。
与えられたインデックスにあるリスト内の要素にアクセスするには、次のように角括弧のインデックス表記を使用する。
>>> novels =
>>> novels
'Jane Eyre'
>>> novels
'The Tenant of Wildfell Hall'
Pythonでは負の添字も有効であることに注意してください。 例:
>>> novels
'The Tenant of Wildfell Hall'
>>> novels
'Wuthering Heights'
>>> novels
'Jane Eyre'
文字列はインデックスによってアクセスすることもできます。 例えば
>>> name = "Brontë"
>>> print name
ë
IndexErrors in Python
Python で IndexError に遭遇することは、存在しないリストのインデックスにアクセスしようとしたことを意味します。 どのリストでも有効なインデックスの範囲は で、
n
はリストの長さに等しい。 もしインデックス n - 1
より大きいものにアクセスしようとすると、Python は index out of range エラーを投げます。
>>> suits =
>>> print suits
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
負のインデックスでは、リストの長さを逆方向には超えられません。 すなわち、インデックス-n
を超えることはできません。
任意のシーケンスタイプの長さを決定するには、組み込みのlen()
関数を使用できます。
>>> len()
4
>>> len("Hat")
3
len()
関数は、パラメータとして与えられたシーケンスに含まれる要素の数を返します。 シーケンスの最大許容インデックスを求めるには、この数値から1を引けばよいのです。
Python で IndexError の最も一般的な原因は、どちらかの方向にインデックスが 1 つずれていることです。 長さ n
のリストに対して、許容される最大のインデックスは、正の方向には n - 1
、負の方向には -n
であることを覚えておいてください。