Programmering nivå 1 med Python
Kapitel 7: Listor
I detta kapitel lär du dig att lagra flera värden i listor, använda index och bearbeta data med loopar.
Innehållsförteckning
Klicka på ett avsnitt för att hoppa direkt.
7.1 Vad är en lista
I många program behöver man lagra flera värden samtidigt. Istället för att skapa många variabler kan man använda en lista.
En lista är en datastruktur som kan innehålla flera värden.
Exempel
numbers = [3, 7, 2, 9]
Här skapas en lista som innehåller fyra tal. Listan sparas i variabeln numbers.
Man kan också ha listor med text.
names = ["Anna", "Erik", "Sara"]
När listor används
Listor används ofta när program behöver:
- lagra många värden
- bearbeta data
- gå igenom information med loopar
Skriva ut en lista
numbers = [3, 7, 2, 9]
print(numbers)
Programmet skriver då ut:
[3, 7, 2, 9]
Loop genom en lista
numbers = [3, 7, 2, 9]
for number in numbers:
print(number)
Interaktiv övning: skriv ut en lista
Testa hur en lista kan innehålla flera värden och hur en for-loop går igenom dem.
Prova till exempel att:
- lägga till fler tal i listan
- byta ut talen mot egna tal
- ändra
print(number)tillprint(number * 2)
Tryck på Kör kod för att testa programmet.
Programmet skriver ut varje värde i listan.
7.2 Index
Varje värde i en lista har en position. Denna position kallas index.
I Python börjar index alltid på 0.
Exempel
numbers = [3, 7, 2, 9]
Positionerna i listan är:
0 -> 3
1 -> 7
2 -> 2
3 -> 9
Hämta ett värde med index
numbers = [3, 7, 2, 9]
print(numbers[0])
Programmet skriver ut 3.
numbers = [3, 7, 2, 9]
print(numbers[2])
Programmet skriver ut 2.
Negativt index
Du kan också använda negativt index för att räkna från slutet av listan.
numbers = [3, 7, 2, 9]
print(numbers[-1])
Programmet skriver ut 9, alltså det sista värdet i listan.
Ändra ett värde i en lista
numbers = [3, 7, 2, 9]
numbers[1] = 10
print(numbers)
Resultat:
[3, 10, 2, 9]
Viktigt att tänka på
Eftersom index börjar på 0 är det lätt att göra fel. Om en lista innehåller fyra värden är det sista indexet 3, inte 4.
Övning
Skapa en lista med fyra färger:
colors = ["röd", "blå", "grön", "gul"]
Gör sedan följande:
- Skriv ut den första färgen.
- Skriv ut den sista färgen.
- Ändra den andra färgen till svart.
- Skriv ut hela listan.
Interaktiv övning: index i listor
Testa hur index används för att hämta och ändra värden i en lista.
Prova till exempel att:
- ändra
colors[0]tillcolors[2] - testa
colors[-1]för att hämta sista färgen - ändra
colors[1] = "svart"till en annan färg
Tryck på Kör kod för att testa programmet.
7.3 Loopar över listor
Listor används ofta tillsammans med loopar. En loop gör det möjligt att gå igenom alla värden i listan.
Exempel
numbers = [3, 7, 2, 9]
for number in numbers:
print(number)
Programmet skriver ut:
3
7
2
9
Hur det fungerar
Loopen går igenom listan ett värde i taget. För varje varv i loopen sparas värdet i variabeln
number.
Exempel med beräkning
numbers = [3, 7, 2, 9]
for number in numbers:
print(number * 2)
Interaktiv övning: loopa och beräkna
Testa hur en loop kan göra samma beräkning på varje tal i en lista.
Prova till exempel att:
- ändra listan till egna tal
- ändra
* 3till* 5 - lägga till en utskrift som visar originaltalet också
Tryck på Kör kod för att testa programmet.
Resultat:
6
14
4
18
Varför detta är användbart
Loopar över listor används när program behöver bearbeta många värden, göra beräkningar, skriva ut information och analysera data.
Övning
Skapa en lista med fem tal:
numbers = [2, 4, 6, 8, 10]
Gör sedan följande:
- Skriv ut alla tal i listan.
- Skriv ut varje tal multiplicerat med 3.
- Skriv ut summan av alla tal i listan.
7.4 Lägga till värden
Ibland behöver ett program lägga till nya värden i en lista. Det kan göras med metoden
append().
append() lägger till ett nytt värde i slutet av listan.
Exempel
numbers = [3, 7, 2, 9]
numbers.append(5)
print(numbers)
Resultat:
[3, 7, 2, 9, 5]
Exempel med flera värden
numbers = [1, 2, 3]
numbers.append(4)
numbers.append(5)
print(numbers)
Resultat:
[1, 2, 3, 4, 5]
Exempel med användarens inmatning
numbers = []
number = int(input("Skriv ett tal: "))
numbers.append(number)
print(numbers)
Interaktiv övning: append()
Testa hur programmet samlar in tal och lägger dem sist i listan.
Prova till exempel att:
- skriva tre olika tal, ett per rad
- ändra
range(3)tillrange(5)och lägga till fler inmatningar - lägga till
print(len(numbers))längst ner
Tryck på Kör kod för att testa programmet.
Listan var först tom men innehåller nu talet som användaren skrev.
Övning
Skapa en tom lista:
numbers = []
Gör sedan följande:
- Be användaren skriva tre tal.
- Lägg till varje tal i listan med
append(). - Skriv ut hela listan.
7.5 Bearbeta data
När data finns i en lista kan programmet bearbeta informationen. Det kan till exempel handla om att räkna ut summan av alla tal, medelvärdet, eller det största och minsta värdet.
Exempel: summa
numbers = [3, 7, 2, 9]
total = 0
for number in numbers:
total = total + number
print(f"Summan är {total}")
Exempel: medelvärde
numbers = [3, 7, 2, 9]
total = 0
for number in numbers:
total = total + number
average = total / len(numbers)
print(f"Medelvärdet är {average}")
Interaktiv övning: summa och medelvärde
Testa hur en lista kan bearbetas för att räkna ut statistik.
Prova till exempel att:
- ändra talen i listan
- lägga till fler tal och se hur
len(numbers)ändras - lägga till en utskrift för
total
Tryck på Kör kod för att testa programmet.
Funktionen len() används för att ta reda på hur många värden som finns i listan.
Exempel: största värdet
numbers = [3, 7, 2, 9]
largest = numbers[0]
for number in numbers:
if number > largest:
largest = number
print(f"Största talet är {largest}")
Varför detta är viktigt
Att bearbeta data i listor används ofta när program ska analysera information, räkna ut statistik och hantera stora datamängder.
Övning
Skapa en lista med fem tal:
numbers = [4, 6, 2, 8, 10]
Gör sedan följande:
- Räkna ut summan av alla tal i listan.
- Räkna ut medelvärdet.
- Skriv ut resultaten.
7.6 Program med listor
Listor används ofta i program som behöver samla in och bearbeta flera värden.
Genom att kombinera listor, loopar och villkor kan program hantera större mängder data.
Exempel: samla in tal
numbers = []
for i in range(5):
number = int(input("Skriv ett tal: "))
numbers.append(number)
print(numbers)
Programmet skapar först en tom lista och lägger sedan till talen som användaren skriver.
Exempel: hitta största talet
numbers = [4, 7, 2, 9, 5]
largest = numbers[0]
for number in numbers:
if number > largest:
largest = number
print(f"Största talet är {largest}")
Exempel: räkna jämna tal
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}")
Interaktiv övning: listor och villkor
Testa hur en loop och ett villkor kan hitta värden som uppfyller ett krav.
Prova till exempel att:
- lägga till fler tal i listan
- ändra villkoret till
number > 5 - skriva ut varje tal som räknas med
Tryck på Kör kod för att testa programmet.
Varför listor är viktiga
Listor används ofta när program behöver lagra många värden, bearbeta data, göra beräkningar och analysera information.
Övning
Skriv ett program som:
- skapar en tom lista
- ber användaren skriva fem tal
- lägger till talen i listan
- räknar ut summan av alla tal
- skriver ut både listan och summan
7.7 Övningar
I dessa övningar ska du använda listor, loopar, append(), index och beräkningar med data
i listor.
Övning 1
Skapa en lista med fem tal:
numbers = [3, 7, 2, 9, 5]
Gör sedan följande:
- Skriv ut hela listan.
- Skriv ut det första talet i listan.
- Skriv ut det sista talet i listan.
Övning 2
Skapa en lista med fem tal. Skriv ett program som skriver ut alla tal i listan med en for-loop.
Övning 3
Skapa listan:
numbers = [4, 6, 2, 8, 10]
Skriv ett program som räknar ut summan av alla tal i listan.
Övning 4
Skapa listan:
numbers = [4, 6, 2, 8, 10]
Skriv ett program som räknar ut medelvärdet av talen i listan. Tips: använd len().
Övning 5
Skriv ett program som:
- skapar en tom lista
- ber användaren skriva fem tal
- lägger till talen i listan med
append() - skriver ut hela listan
Övning 6
Skriv ett program som:
- skapar en lista med tal
- går igenom listan med en loop
- skriver ut alla jämna tal i listan
Övning 7
Skriv ett program som:
- skapar en lista med tal
- går igenom listan
- räknar hur många tal som är större än 5
Programmet ska skriva ut resultatet.
Quiz
Svara på frågorna och klicka sedan på knappen längst ner för att se hur många rätt du fick.
7.8 Reflektionsfrågor
- Vad är en lista i Python?
- Varför används listor i program?
- Vad betyder index i en lista?
- Varför börjar index på 0 i Python?
- Hur kan man gå igenom alla värden i en lista?
- Vad gör metoden
append()? - Hur kan man räkna ut summan av alla tal i en lista?
- Vad gör funktionen
len()när den används på en lista? - Ge ett exempel på när listor kan vara användbara i ett program.
- Varför används listor ofta tillsammans med loopar?