Presentationer Slide 1/1

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 = 3number = 7number = 2number = 9

När alla värden har använts avslutas loopen.

7.2

Index anger positionen

Index0123
Värde3729

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

Terminal
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

numbertotal företotal efter
303
7310
21012
91221

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

numberlargest föreUppdatering
33nej
73ja → 7
27nej
97ja → 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

  1. Skapa en tom lista.
  2. Läs in värden och använd append().
  3. Gå igenom listan med en ny loop.
  4. Beräkna resultatet.
  5. Skriv ut listan och resultatet.

7.7 · Övning

Analysera fem tal

  1. Skapa en lista med fem tal.
  2. Skriv ut första och sista värdet.
  3. Räkna ut summan.
  4. Räkna ut medelvärdet med len().
  5. Räkna hur många tal som är större än 5.

Kontrollfråga

Vad är skillnaden?

numbers[1] = 10

Ersä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; -1 ger 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.