Indexfel

, Author

Index i Python

Ett index i Python representerar en position i en sekvens. Vanligast är att detta avser en position i en sträng eller en lista. Indexering i Python, liksom i de flesta andra programmeringsspråk, börjar vid 0. Till exempel:

indexValueList =

Varje värde i den här listan representerar också sitt eget index. Observera att det första objektet i listan faktiskt ligger på index 0. På samma sätt är det maximala indexet i listan lika med listans längd minus ett.

För att komma åt elementet i en lista vid ett givet index använder du indexeringsnotationen med hakparenteser på följande sätt:

>>> novels =
>>> novels
'Jane Eyre'
>>> novels
'The Tenant of Wildfell Hall'

Notera att negativa indikationer också är giltiga i Python. Till exempel:

>>> novels
'The Tenant of Wildfell Hall'
>>> novels
'Wuthering Heights'
>>> novels
'Jane Eyre'

Strängar kan också nås via index. Till exempel:

>>> name = "Brontë"
>>> print name
ë

IndexFel i Python

Att stöta på ett IndexFel i Python innebär att du försökte komma åt ett index i listan som inte finns. Intervallet av giltiga index för en lista är där n är lika med listans längd. Om du försöker komma åt något som är större än index n - 1 kommer Python att ge ett indexfel utanför intervallet:

>>> suits =
>>> print suits
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

För negativ indexering kan du inte överskrida listans längd i motsatt riktning. Du kan alltså inte överskrida index -n.

För att bestämma längden på en sekvenstyp kan du använda den inbyggda funktionen len():

>>> len()
4
>>> len("Hat")
3

Funktionen len() returnerar antalet element i den sekvens som ges som parameter. För att hitta det högsta tillåtna indexet för en sekvens subtraherar du helt enkelt ett från detta antal.

Den överlägset vanligaste orsaken till IndexErrors i Python är att man ligger fel med ett index i endera riktningen. Kom bara ihåg att för en lista med längden n är de maximalt tillåtna indexen n - 1 i positiv riktning och -n i negativ riktning.

Lämna ett svar

Din e-postadress kommer inte publiceras.