Indeksit Pythonissa
Pythonissa indeksi edustaa paikkaa sarjassa. Yleisimmin sillä tarkoitetaan paikkaa merkkijonossa tai luettelossa. Indeksointi Pythonissa, kuten useimmissa muissakin ohjelmointikielissä, alkaa arvosta 0. Esim:
indexValueList =
Jokainen arvo tässä luettelossa edustaa myös omaa indeksiään. Huomaa, että listan ensimmäinen kohde on itse asiassa indeksillä 0. Samoin listan suurin indeksi on yhtä suuri kuin listan pituus miinus yksi.
Jos haluat käyttää listan elementtiä tietyllä indeksillä, käytä hakasulkeissa olevaa indeksointimerkintää seuraavasti:
>>> novels =
>>> novels
'Jane Eyre'
>>> novels
'The Tenant of Wildfell Hall'
Huomaa, että myös negatiiviset indeksit ovat päteviä Pythonissa. Esimerkiksi:
>>> novels
'The Tenant of Wildfell Hall'
>>> novels
'Wuthering Heights'
>>> novels
'Jane Eyre'
Merkkijonoja voidaan käyttää myös indeksin avulla. Esim:
>>> name = "Brontë"
>>> print name
ë
IndexError Pythonissa
IndexErrorin kohtaaminen Pythonissa tarkoittaa, että yritit päästä käsiksi luettelon indeksiin, jota ei ole olemassa. Minkä tahansa listan kelvollisten indeksien alue on , jossa
n
on yhtä suuri kuin listan pituus. Jos yrität päästä käsiksi mihinkään, joka on suurempi kuin indeksi n - 1
, Python heittää index out of range -virheen:
>>> suits =
>>> print suits
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
Negatiivisessa indeksoinnissa et voi ylittää listan pituutta vastakkaiseen suuntaan. Nimittäin, et voi ylittää indeksiä -n
.
Voit määrittää minkä tahansa sekvenssityypin pituuden käyttämällä sisäänrakennettua len()
-funktiota:
>>> len()
4
>>> len("Hat")
3
Funktio len()
palauttaa minkä tahansa sekvenssin elementtien lukumäärän, joka sille annetaan parametrina. Jos haluat löytää sarjan suurimman sallitun indeksin, vähennä tästä luvusta yksinkertaisesti yksi.
Ylivoimaisesti yleisin IndexErrorin syy Pythonissa on yhden indeksin poikkeama kumpaankin suuntaan. Muista vain, että listalle, jonka pituus on n
, suurin sallittu indeksi on n - 1
positiiviseen suuntaan ja -n
negatiiviseen suuntaan.