Index
Vi har sett tidigare att vi kan samla flera värden, data, efter varandra i en lista. På samma sätt är en sträng en samling av bokstäver uppradade efter varandra, i den ordning de har blivit tillagda.
I det här här avsnittet ska vi dela upp och plocka ut delar från listor och strängar genom att prata om index och skivor.
Att alla värden i en lista ligger i en viss ordning gör att vi kan se vad som finns på en viss plats genom att ange ett index.
Räkna från noll
På det här sättet kan vi skriva ut första bokstaven i ett namn:
namn = input("Vad heter du?")
print(namn[0])
För att hämta ut något från en plats i en lista (eller en sträng) kan vi skriva hakparenteser: [ och ]. Mellan dem skriver vi ett index, en plats i listan eller strängen. I datorns värld börjar vi alltid räkna från noll, så den första bokstaven är på plats noll. Den andra bokstaven är på plats ett, och så vidare.
På samma sätt kan vi skriva ut strängen "tre" på det här sättet:
tal = ["noll", "ett", "två", "tre", "fyra", "fem", "sex", "sju", "åtta", "nio"]
print(tal[3])
Om du anger ett större index än vad som finns i listan får du ett fel. Till exempel skulle print(tal[999])) krascha programmet. Felmeddelandet nämner då att det skett ett IndexError.
Skivor
Med hjälp av ett index kan vi alltså plocka ut en bokstav från en sträng, eller ett värde från en lista. Men vi kan också plocka ut flera element till en ny sträng eller lista. Det gör vi genom att ange två index, ett start- och ett slutindex.
s = "Ja, Python är ett språk."
språk = s[4:10]
print(språk) # skriver ut "Python"
Detta kallar vi för en skiva av strängen s. Ibland kallas det också för en “delsträng”.
Kilometer
Linda har skrivit upp hur många kilometer hon cyklat varje dag i februari i en lång lista. Nu är hon nyfiken på hur mycket det blivit per vecka.
cykling_februari = [3, 2, 7, 0, 2, 5, 12, 6, 2, 7, 0, 2, 5, 0, 0, 0, 4, 0, 2, 5, 25, 3, 2, 0, 0, 2, 10, 10]
För att dela upp detta per vecka kan hon skapa fyra nya listor med hjälp av skivor. Den första veckan är de första sju dagana, alltså de första sju värden i listan. Om första indexet är \(0\) vill hon ha data från index \(0\) till och med \(6\). Nästa vecka börjar sedan på \(7\) och innehåller \(7\) dagar till, och så vidare. Vi kan göra det såhär:
I den här videon gör vi sköldpaddan smartare genom att låta den förstå att "F", "Forward" och "Move forward" kan vara samma uppmaning.
- Index: En plats i en lista eller sträng. Första platsen har index \(0\).
- Skiva: En del av en lista eller sträng.
- Lista: En lista är en samling av data som kommer i någon ordning.
- Sträng: Text av olika slag kallas inom programmering för strängar. Förkortas "str".