Python Academy · Lektion

Dictionary comprehensions

Skapa dictionaries koncist med comprehension-syntax.

Lektion 4 av 414 steg

Dictionary comprehensions är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Introduktion

Dictionary comprehensions ger ett kortfattat sätt att skapa dicts från valfri itererbar datamängd.

Grundläggande dict comprehension

{k: v for k, v in items} är grundformen. Exempel: {x: x**2 for x in range(5)} kopplar tal till deras kvadrater.
squares = {x: x**2 for x in range(5)}
print(squares)

Med ett villkor

Lägg till if i slutet för att filtrera: {x: x**2 for x in range(10) if x % 2 == 0} behåller endast jämna tal.
evens = {x: x**2 for x in range(10) if x % 2 == 0}
print(evens)

Invertera en dict

{v: k for k, v in d.items()} byter plats på nycklar och värden. Det fungerar endast om alla värden är unika och hashbara.
d = {'a': 1, 'b': 2, 'c': 3}
inverted = {v: k for k, v in d.items()}
print(inverted)

Från två listor

{k: v for k, v in zip(keys, values)} är det tydligaste sättet att skapa en dict från parallella listor.
keys = ['name', 'age']
vals = ['Alice', 30]
d = {k: v for k, v in zip(keys, vals)}
print(d)

Omforma värden

Tillämpa en funktion på alla värden: {k: v.upper() for k, v in d.items()} konverterar alla strängvärden till versaler.
d = {'a': 'hello', 'b': 'world'}
result = {k: v.upper() for k, v in d.items()}
print(result)

Nästlad dict comprehension

{outer_k: {inner_k: inner_v} ...} nästlar comprehensions. Tänk på läsbarheten – använd en vanlig loop om uttrycket är komplext.
nested = {i: {j: i*j for j in range(3)} for i in range(3)}
print(nested)

Gruppera med en comprehension

Gruppera poster efter en egenskap: {k: [v for v in values if condition(v, k)] for k in keys}
words = ['apple', 'art', 'banana', 'blueberry']
grouped = {ch: [w for w in words if w.startswith(ch)] for ch in 'ab'}
print(grouped)

Slå ihop och skriva över

{**d1, **d2} slår ihop två dicts på ett comprehension-liknande sätt. Värdena i d2 vinner vid dubbletter av nycklar.
d1 = {'a': 1, 'b': 2}
d2 = {'b': 99, 'c': 3}
merged = {**d1, **d2}
print(merged)

Dict eller defaultdict

Comprehensions skapar vanliga dicts. Använd defaultdict när Ni behöver automatisk initiering av saknade nycklar.
from collections import defaultdict
d = defaultdict(list)
for w in ['apple', 'art', 'banana']:
    d[w[0]].append(w)
print(dict(d))

Prestanda

Dictionary comprehensions är vanligtvis snabbare än motsvarande byggen med for-loopar, eftersom tolken optimerar dem internt.
# Comprehension
squares = {x: x**2 for x in range(1000)}
print(len(squares))

Snabb kontroll

Vad gör {v: k for k, v in d.items()}?

Sammanfattning

Dictionary comprehensions: {k: v for ... if ...}. Använd dem för att invertera dicts, omforma värden, gruppera och filtrera. Kombinera dem med zip() för parallella listor.

Fortsätt

Bra arbete! Gå vidare till nästa lektion för att fortsätta utveckla Era färdigheter.
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Dictionary comprehensions” gratis?

Ja – hela texten till ”Dictionary comprehensions” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Dictionary comprehensions”?

Skapa dictionaries koncist med comprehension-syntax. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Dictionary comprehensions”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Grunderna i dictionaries
  2. Dictionary-metoder
  3. Mängder och mängdoperationer
  4. Dictionary comprehensions
← Tillbaka till Python Academy