Presentationer Slide 1/1

Kap 2.4

Dictionaries och tuples

Vi väljer datastruktur efter hur värdena ska användas.

Mål

Efter lektionen ska du kunna...

  • förklara vad en dictionary är
  • använda nyckel-värde-par
  • förklara vad en tuple är
  • välja mellan lista, dictionary och tuple

Frågan

Hur hör värdena ihop?

Listor passar när ordningen är viktig.

Dictionaries passar när värden behöver namn.

Tuples passar när en grupp värden ska vara fast.

Dictionary

Nyckel och värde

person = {
    "name": "Anna",
    "age": 25,
    "city": "Stockholm"
}

"name", "age" och "city" är nycklar.

Åtkomst

Hämta värde med nyckel

print(person["name"])

Python hämtar värdet som hör till nyckeln "name".

Anna

Säkrare åtkomst

get() undviker KeyError

print(person.get("email", "Ingen e-post finns"))

Om nyckeln saknas används standardvärdet.

Det är användbart när du inte vet om nyckeln finns.

Ändra

Ändra eller lägg till

person["age"] = 26

Nyckeln finns redan, så värdet ändras.

person["email"] = "alice@example.com"

Nyckeln saknas, så den läggs till.

Ta bort

del tar bort en nyckel

del person["city"]

Nyckeln "city" och dess värde tas bort.

Iteration

Loopa genom dictionaryn

for key, value in person.items():
    print(f"{key}: {value}")
name: Anna
age: 26
email: alice@example.com

Varje varv skriver ut en nyckel och dess värde.

Realistiskt

Flera dictionaries i en lista

books = [
    {"title": "Python", "year": 2024},
    {"title": "Webbutveckling", "year": 2023}
]

for book in books:
    print(book["title"])
Python
Webbutveckling

Loopen hämtar nyckeln "title" från varje dictionary.

Tuple

Fast, ordnad samling

coordinates = (10, 20)
print(coordinates[0])  # 10

En tuple har ordning, men kan inte ändras efter att den skapats.

Immutable

Oföränderlig struktur

coordinates[0] = 99

Det fungerar inte.

Du kan läsa från en tuple, men inte byta ut positioner.

Uppackning

Dela upp värden i variabler

coordinates = (10, 20)

x, y = coordinates

print(x)  # 10
print(y)  # 20

Antalet variabler måste matcha antalet värden.

Funktioner

Returnera flera värden

def get_user():
    return ("Anna", 25)

name, age = get_user()

Funktionen returnerar en tuple som packas upp direkt.

Jämförelse

Lista, dictionary, tuple

  • lista: ordnad och ändringsbar
  • dictionary: nyckel-värde-par
  • tuple: ordnad och oföränderlig

Välj rätt

När passar vad?

  • lista: flera värden i en ordning
  • dictionary: persondata, inställningar, poängtabeller
  • tuple: koordinater eller fasta returvärden

Öva själv

Fyra uppgifter

  1. Skapa en dictionary för en bok.
  2. Skriv en funktion som returnerar en tuple med namn och ålder.
  3. Skapa en meny för användarnamn och poäng.
  4. Skriv ut alla nycklar och värden med en for-loop.

Reflektion

Fundera

  • När passar dictionary bättre än lista?
  • Hur påverkar det att en tuple inte kan ändras?
  • Vilken struktur passar bäst i ett menybaserat program?

Sammanfattning

Kom ihåg

  • Dictionaries kopplar nycklar till värden.
  • get() kan ge standardvärde om nyckeln saknas.
  • items() ger nyckel och värde i en loop.
  • Tuples är ordnade men oföränderliga.
  • Tuple-uppackning delar värden i variabler.