Fördjupning loopar
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: 16items() 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 årDictionaries 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
- 15Vad händer här?
- Första loopen går igenom dictionaryn
betygmed.items()och ger två variabler:namn= nyckeln (t.ex."Ali")resultat= värdet (en lista med betyg)
- Andra loopen går igenom listan
resultatmed ett nytt variabelnamnbetygsresultat.
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.