Negative indekser i lister

I artikkelen om lister ser vi at lister er variabler som kan inneholde flere elementer, og at vi kan referere til enkeltelementer i ei liste ved hjelp av indekser, der første element i ei liste har indeks 0. Indeksene i ei liste med n elementer vil altså være tallene fra og med 0 til og med n−1. Bruker vi en indeks som er n eller større, får vi feilmeldingen "IndexError: list index out of range".

Antall elementer i ei liste kan vi finne ved hjelp av Python-funksjonen len().

Eksempel 1:

Vi oppretter ei liste som heter primtall, og inneholder de 10 første primtallene:

primtall = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

len(primtall) vil returnere 10.

Indeksene i primtall går da fra og med 0 til og med 9.

Skriver vi så for eksempel

print(primtall[0], primtall[9])

får vi skrevet ut 2 og 29.

Skriver vi

print(primtall[10])

får vi en feilmelding.

Vi kan imidlertid også bruke negative tall som indekser. Negative indekser regner fra høyre mot venstre. Siste element i ei liste har indeks −1, nest siste −2, og så videre. Første element i ei liste med n elementer vil ha indeks −n. Bruker vi en indeks som er mindre enn −n, får vi samme feilmelding som hvis vi bruker en indeks som er n eller større, "IndexError: list index out of range".

Positive indekser i ei liste med n elementer går altså fra 0 til n−1, fra venstre mot høyre, mens negative indekser går fra −1 til −n fra høyre mot venstre.

Eksempel 2:

Vi oppretter ei liste som heter primtall, som i eksempel 1:

primtall = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

Skriver vi så for eksempel

print(primtall[-1], primtall[-10])

får vi skrevet ut 29 og 2.

Oppgave 1:

Vi oppretter ei liste som heter kvadrat:

kvadrat = [1, 4, 9, 16, 25, 36]

Hvilke tall refererer da kvadrat[-2] og kvadrat[-6] til? Skriv først opp svarene dine, og bruk så print() i Python til å sjekke om du har rett.

Se løsningsforslag

Kilder

    • Matthes A. (2019). Python Crash Course. no starch press