Kapitel 7
Listor
Lagra, hitta och bearbeta flera värden i samma variabel.
Mål
Efter kapitlet ska du kunna...
- skapa och skriva ut listor
- hämta och ändra värden med index
- gå igenom listor med loopar
- lägga till värden med
append() - beräkna summa, medelvärde och största värde
- kombinera listor, loopar och villkor
7.1
En lista lagrar flera värden
numbers = [3, 7, 2, 9]
Hakparenteserna [ ] markerar listan.
Komman skiljer värdena åt.
Hela listan sparas i variabeln numbers.
Listor med text
Värden kan vara strängar
names = ["Anna", "Erik", "Sara"]
Varje namn är en egen sträng.
Listor används när ett program behöver hantera många värden tillsammans.
Skriv ut listan
print() visar hela innehållet
numbers = [3, 7, 2, 9]
print(numbers)
[3, 7, 2, 9]
Lista och loop
Skriv ut ett värde i taget
numbers = [3, 7, 2, 9]
for number in numbers:
print(number)
3
7
2
9
Loopens variabel
number får ett värde per varv
number = 3→number = 7→number = 2→number = 9När alla värden har använts avslutas loopen.
7.2
Index anger positionen
| Index | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| Värde | 3 | 7 | 2 | 9 |
Python börjar räkna index från 0.
Fyra värden har därför index 0 till 3.
Hämta med index
Hakparenteser väljer ett värde
numbers = [3, 7, 2, 9]
print(numbers[0])
print(numbers[2])
3
2
Negativt index
Räkna från slutet
numbers = [3, 7, 2, 9]
print(numbers[-1])
-1 betyder det sista värdet.
Terminalen skriver ut 9.
Ändra med index
Ersätt ett värde
numbers = [3, 7, 2, 9]
numbers[1] = 10
print(numbers)
[3, 10, 2, 9]
Värdet på index 1 ersätts. Listans längd ändras inte.
Vanligt fel
Index utanför listan
numbers = [3, 7, 2, 9]
print(numbers[4])
IndexError: list index out of range
Det sista giltiga indexet är 3, inte 4.
Kontrollfråga
Vilka värden hämtas?
colors = ["röd", "blå", "grön", "gul"]
print(colors[1])
print(colors[-1])
Svar: blå och gul.
7.3
Bearbeta varje värde
numbers = [3, 7, 2, 9]
for number in numbers:
print(number * 2)
6
14
4
18
Viktigt
Loopen ändrar inte listan automatiskt
for number in numbers:
print(number * 2)
Uttrycket number * 2 skrivs ut.
Värdena i numbers är fortfarande [3, 7, 2, 9].
7.4
append() lägger till sist
numbers = [3, 7, 2, 9]
numbers.append(5)
print(numbers)
[3, 7, 2, 9, 5]
Flera tillägg
Ett anrop lägger till ett värde
numbers = [1, 2, 3]
numbers.append(4)
numbers.append(5)
print(numbers)
[1, 2, 3, 4, 5]
Samla input
Bygg listan i en loop
numbers = []
for i in range(3):
number = int(input("Skriv ett tal: "))
numbers.append(number)
print(numbers)
Listan börjar tom och växer ett värde per varv.
Interaktiv kontroll
Undersök en lista
Tryck på en knapp för att testa.
7.5 · Summa
Samla värden i total
numbers = [3, 7, 2, 9]
total = 0
for number in numbers:
total = total + number
print(f"Summan är {total}")
Resultat: Summan är 21.
Spåra summan
total förändras varje varv
number | total före | total efter |
|---|---|---|
| 3 | 0 | 3 |
| 7 | 3 | 10 |
| 2 | 10 | 12 |
| 9 | 12 | 21 |
Medelvärde
Summan delad med antalet
numbers = [3, 7, 2, 9]
total = 0
for number in numbers:
total = total + number
average = total / len(numbers)
print(f"Medelvärdet är {average}")
len(numbers) ger antalet värden: 4.
len()
Räkna värdena
numbers = [3, 7, 2, 9]
print(len(numbers))
4
Längden är 4, medan sista indexet är 3.
Största värdet
Börja med ett verkligt listvärde
numbers = [3, 7, 2, 9]
largest = numbers[0]
for number in numbers:
if number > largest:
largest = number
print(f"Största talet är {largest}")
Spåra största värdet
largest uppdateras vid behov
number | largest före | Uppdatering |
|---|---|---|
| 3 | 3 | nej |
| 7 | 3 | ja → 7 |
| 2 | 7 | nej |
| 9 | 7 | ja → 9 |
7.6
Räkna värden som uppfyller ett villkor
numbers = [4, 7, 2, 9, 5]
count = 0
for number in numbers:
if number % 2 == 0:
count = count + 1
print(f"Antal jämna tal är {count}")
Resultat: 2.
Hela programmet
Samla in och summera fem tal
numbers = []
for i in range(5):
number = int(input("Skriv ett tal: "))
numbers.append(number)
total = 0
for number in numbers:
total = total + number
print(numbers)
print(f"Summan är {total}")
Programstruktur
Samla först – bearbeta sedan
- Skapa en tom lista.
- Läs in värden och använd
append(). - Gå igenom listan med en ny loop.
- Beräkna resultatet.
- Skriv ut listan och resultatet.
7.7 · Övning
Analysera fem tal
- Skapa en lista med fem tal.
- Skriv ut första och sista värdet.
- Räkna ut summan.
- Räkna ut medelvärdet med
len(). - Räkna hur många tal som är större än 5.
Kontrollfråga
Vad är skillnaden?
numbers[1] = 10Ersätter värdet på index 1.
numbers.append(10)Lägger till ett nytt värde sist.
Sammanfattning
Kom ihåg
- En lista lagrar flera värden mellan
[ ]. - Index börjar på
0;-1ger sista värdet. - En
for-loop kan bearbeta varje värde. append()lägger till ett värde sist.len()ger antalet värden.- Listor, loopar och villkor kan tillsammans analysera data.