Programmering nivå 2
Kap 2.2 – Listor och iteration
Använd listor och loopar för att bearbeta flera värden på ett strukturerat sätt.
Mål med lektionen
När du har arbetat klart med denna lektion ska du:
- Förstå vad en lista är och när du använder den.
- Kunna skapa, läsa, ändra och iterera över en lista.
- Använda for-loopar för att bearbeta listor.
- Förstå hur listor kan användas för att lösa programmeringsproblem.
Så här lär du dig bäst
Testa varje exempel i koden. Ändra värden, lägg till nya element, ta bort några och observera vad som händer. Det är så du verkligen lär dig hur listor fungerar. Kombinera sedan detta med dina kunskaper om loopar för att bearbeta innehållet.
Vad är en lista?
En lista i Python är en samling av värden som hålls ihop i en och samma variabel. Den kan innehålla tal, strängar eller andra listor.
fruits = ["apple", "banana", "cherry"]
print(fruits)
Du kan också blanda datatyper:
mixed = [1, "two", 3.0]
Läsa och ändra element
Listor är indexerade. Det första elementet har index 0.
print(fruits[0]) # apple
fruits[1] = "orange"
print(fruits) # ['apple', 'orange', 'cherry']
Lägga till och ta bort element
fruits.append("pear") # Lägg till sist
fruits.insert(1, "kiwi") # Lägg till på plats 1
fruits.remove("orange") # Ta bort ett element
Interaktiv övning: ändra en lista
Testa hur listan förändras när du lägger till, stoppar in eller tar bort värden. Kör ett val i taget och titta på resultatet innan du fortsätter.
Prova till exempel att:
- lägga till
pearsist i listan - stoppa in
kiwipå index1 - ta bort
bananaoch se hur listan blir kortare
Programmering 2-koppling: listor gör att flera värden kan hanteras med samma variabel, och metoder ändrar listans innehåll under programmets körning.
Iterera genom listor med for
Att iterera betyder att gå igenom elementen ett i taget.
for fruit in fruits:
print(f"I like {fruit}")
Interaktiv övning: iterera över en lista
Skriv några saker separerade med kommatecken. När du kör koden går for-loopen igenom
listan ett element i taget.
Programmering 2-koppling: iteration gör att samma kod kan användas på varje element i en lista, oavsett hur lång listan är.
Du kan också använda range() och len() för att gå igenom en lista med index:
for i in range(len(fruits)):
print(fruits[i])
Andra användbara funktioner
numbers = [10, 20, 30]
print(sum(numbers)) # 60
print(len(numbers)) # 3
print(max(numbers)) # 30
Kombinera listor och funktioner
Du kan använda listor som argument till funktioner:
def print_list(lst):
for item in lst:
print(item)
print_list(["car", "bike", "bus"])
Du kan också returnera en lista från en funktion:
def even_numbers(n):
result = []
for i in range(n):
if i % 2 == 0:
result.append(i)
return result
print(even_numbers(10)) # [0, 2, 4, 6, 8]
Öva själv
- Skapa en lista med fem namn och skriv ut varje namn med en hälsning.
- Skapa en funktion som tar emot en lista med tal och returnerar medelvärdet.
- Gör en meny där användaren kan lägga till ord i en lista, skriva ut den eller avsluta.
När du har försökt själv kan du ladda ner ett lösningsförslag: kap2-2-losningsforslag.py
Lösningsförslaget använder funktioner från kapitel 1.3, loopar och
break från kapitel 1.5 samt listor, append(), sum() och
len() från det här kapitlet. \n betyder ny rad i en textsträng och
:.2f visar ett decimaltal med två decimaler.
Reflektion
- När passar det att använda listor istället för flera separata variabler?
- Hur påverkas programmet av att du kan bearbeta en hel samling med data?
- På vilket sätt förbättrar det din kod att kombinera listor med funktioner?