Vad är ett index?

Ett index är det nummer som visar var i listan ett värde finns. Den första platsen har index 0, den andra har 1, osv.

namn = ["Ali", "Sara", "Liam"]
print(namn[0])  # Skriver ut "Ali"
print(namn[2])  # Skriver ut "Liam"

Tänk på: Man räknar från 0 i Python – inte från 1.

enumerate() – när du vill ha både index och värde

Ibland vill man veta både platsen (index) och värdet i listan. Då använder man enumerate().

namn = ["Ali", "Sara", "Liam"]

for index, person in enumerate(namn):
    print("Index:", index, "→ Namn:", person)

Utskrift:

Index: 0 → Namn: Ali  
Index: 1 → Namn: Sara  
Index: 2 → Namn: Liam

enumerate() ger dig två värden: först index, sedan värdet i listan.

dict.items() – att loopa över nyckel och värde

En dictionary innehåller nyckel–värde-par. Exempelvis Namn(nyckel), Emma(värde).

elev = {"namn": "Emma", "ålder": 16}

for key, value in elev.items():
    print("Nyckel:", key, "→ Värde:", value)

Utskrift:

Nyckel: namn → Värde: Ali  
Nyckel: ålder → Värde: 16

items() gör att man får två värden i loopen: nyckeln först, värdet sedan.

Kombinera listor med dictionaries

Exempel: en lista där varje elev är representerad som en dictionary:

klass = [
    {"namn": "Ali", "ålder": 16},
    {"namn": "Sara", "ålder": 17}
]

for elev in klass:
    print(elev["namn"], "är", elev["ålder"], "år")

Utskrift:

Ali är 16 år  
Sara är 17 år

Dictionaries med listor – exempel: resultat

Du kan använda en dictionary där varje nyckel är en elevs namn och värdet är en lista av provresultat:

betyg = {
    "Ali": [12, 15, 14],
    "Sara": [13, 16, 15]
}

Här är "Ali" en nyckel, och [12, 15, 14] är en lista (värdet).

Nestlad loop – skriva ut varje betyg för varje elev

En nestlad loop är en loop inuti en loop. Exempel:

for namn, resultat in betyg.items():
    print(namn, "har följande betyg:")
    for betygsresultat in resultat:
        print("-", betygsresultat)

Utskrift:

Ali har följande betyg:
- 12
- 15
- 14
Sara har följande betyg:
- 13
- 16
- 15

Vad händer här?

  1. Första loopen går igenom dictionaryn betyg med .items() och ger två variabler:
    • namn = nyckeln (t.ex. "Ali")
    • resultat = värdet (en lista med betyg)
  2. Andra loopen går igenom listan resultat med ett nytt variabelnamn betygsresultat.

Det här är ett exempel på en nestlad loop – en loop inuti en annan. Varje gång ytterloopen körs (för en elev), körs innerloopen för elevens betyg.