Presentationer Slide 1/1

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 sist
  • insert() lägger till på vald plats
  • remove() 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

  1. Skapa en lista med fem namn och hälsa på varje namn.
  2. Skapa en funktion som returnerar medelvärdet av en lista med tal.
  3. 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() och remove() ändrar listan.
  • Iteration går igenom elementen ett i taget.
  • Listor kan skickas till och returneras från funktioner.