Programmering nivå 2
Kap 2.4 – Dictionaries och tuples
Välj rätt datastruktur när värden behöver namn, ordning eller skydd mot ändring.
Mål med lektionen
När du har arbetat klart med denna lektion ska du:
- Förstå vad en dictionary och en tuple är.
- Kunna skapa och använda dictionaries för att lagra nyckel-värde-par.
- Förstå tuples som fasta, ordnade samlingar av data.
- Veta när du bör använda dessa strukturer i stället för listor.
Så här lär du dig bäst
Testa varje struktur med olika datatyper och i kombination med loopar och funktioner. Jämför hur det känns att använda listor, dictionaries och tuples i olika situationer. Reflektera över varför vissa datastrukturer är mer lämpliga än andra beroende på sammanhang.
Vad är en dictionary?
En dictionary i Python är en samling av nyckel-värde-par, där varje nyckel är unik. Den används när du vill koppla ett värde till ett specifikt namn eller en identitet.
person = {
"name": "Alice",
"age": 25,
"city": "Stockholm"
}
Åtkomst
print(person["name"]) # Alice
Ändra eller lägga till
person["age"] = 26
person["email"] = "alice@example.com"
Ta bort
del person["city"]
Loopa genom en dictionary
for key, value in person.items():
print(f"{key}: {value}")
Vad är en tuple?
En tuple är en ordnad, oföränderlig samling. Den används när du inte vill att värden ska kunna ändras.
coordinates = (10, 20)
print(coordinates[0]) # 10
Tuples används ofta för att returnera flera värden från en funktion:
def get_user():
return ("Alice", 25)
name, age = get_user()
Skillnad mot listor
- Listor: ändringsbara, alltså mutable.
- Tuples: fasta, alltså immutable.
Jämförelse: när används vad?
| Struktur | Egenskaper | Använd när du vill... |
|---|---|---|
| List | Ordnad, ändringsbar | Lagra flera värden i en ordning |
| Dictionary | Nyckel-värde-par | Knyta namn eller etikett till varje värde |
| Tuple | Ordnad, oföränderlig | Lagra en fast uppsättning värden |
Öva själv
- Skapa en dictionary för en bok med nycklarna
title,authorochyear. - Skriv en funktion som returnerar en tuple med ett namn och en ålder.
- Skapa en meny som låter användaren lägga till poster i en dictionary, till exempel användarnamn och poäng.
- Skriv ut alla nycklar och värden i en dictionary med hjälp av en for-loop.
Reflektion
- När känns det bäst att använda en dictionary istället för en lista?
- Hur påverkar det programlogiken att en tuple inte kan ändras?
- Vilken struktur tycker du är mest användbar i ett menybaserat program?