Kap 2.2
Listor och iteration
Vi använder listor och loopar för att hantera flera värden strukturerat.
Mål
Efter lektionen ska du kunna...
- förklara vad en lista är
- skapa, läsa och ändra listor
- iterera över listor med
for - använda listor tillsammans med funktioner
Problem
Flera värden hör ihop
Ett program kan behöva spara flera namn.
Eller flera poäng.
Eller flera produkter.
Då är en lista bättre än många separata variabler.
Lista
En samling värden
fruits = ["apple", "banana", "cherry"]
Tre strängar ligger i samma variabel.
print(fruits)
Hela listan kan skrivas ut.
Datatyper
Listor kan innehålla olika värden
numbers = [10, 20, 30]
En lista med tal.
mixed = [1, "two", 3.0]
Python tillåter blandade datatyper i samma lista.
Index
Första elementet har index 0
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[1]) # banana
print(fruits[2]) # cherry
Index
Tänk positioner
index: 0 1 2
värde: apple banana cherry
fruits[0] betyder: hämta värdet på plats 0.
Ändra
Byt ut ett element
fruits[1] = "orange"
Värdet på index 1 ändras.
["apple", "orange", "cherry"]
"banana" har ersatts av "orange".
Metoder
Lägg till och ta bort
append()lägger till sistinsert()lägger till på vald platsremove()tar bort ett värde
append
Lägg till sist
fruits.append("pear")
"pear" hamnar längst bak.
["apple", "banana", "cherry", "pear"]
insert
Lägg till på plats
fruits.insert(1, "kiwi")
"kiwi" stoppas in på index 1.
["apple", "kiwi", "banana", "cherry"]
Värdena efter index 1 flyttas ett steg.
remove
Ta bort ett värde
fruits.remove("banana")
Python letar efter värdet och tar bort det.
["apple", "cherry"]
Iteration
Gå igenom listan
Att iterera betyder att gå igenom elementen ett i taget.
for fruit in fruits:
print(f"I like {fruit}")
Samma kod körs en gång för varje frukt.
Stegvis
Vad gör loopen?
varv 1: fruit = "apple" → I like apple
varv 2: fruit = "banana" → I like banana
varv 3: fruit = "cherry" → I like cherry
Index-loop
range() och len()
fruits = ["apple", "banana", "cherry"]
Listan har tre element.
len(fruits) # 3
len() räknar hur många element som finns i listan.
range(len(fruits)) # range(3)
Det ger indexen 0, 1 och 2.
for i in range(len(fruits)):
print(fruits[i])
Loopen använder varje index för att hämta rätt element.
Funktioner
Färdiga verktyg för tal
numbers = [10, 20, 30]
print(sum(numbers)) # 60
print(len(numbers)) # 3
print(max(numbers)) # 30
Argument
Skicka listor till funktioner
def print_list(lst):
for item in lst:
print(item)
print_list(["car", "bike", "bus"])
Returvärde
Returnera en lista
def even_numbers(n):
result = []
for i in range(n):
if i % 2 == 0:
result.append(i)
return result
even_numbers(10) ger [0, 2, 4, 6, 8].
Öva själv
Tre uppgifter
- Skapa en lista med fem namn och hälsa på varje namn.
- Skapa en funktion som returnerar medelvärdet av en lista med tal.
- Gör en meny där användaren kan lägga till ord, skriva ut listan eller avsluta.
Reflektion
Fundera
- När passar en lista bättre än flera variabler?
- Hur förändras programmet när listan kan vara olika lång?
- Varför passar listor och loopar bra tillsammans?
Sammanfattning
Kom ihåg
- Listor samlar flera värden i en variabel.
- Index börjar på
0. append(),insert()ochremove()ändrar listan.- Iteration går igenom elementen ett i taget.
- Listor kan skickas till och returneras från funktioner.