Competitive Programming Academy · Lektion

Counter och defaultdict i praktiken

Räkna objekt utan fel på saknade nycklar

Lektion 3 av 413 steg

Counter och defaultdict i praktiken är en gratis lektion i Competitive Programming Academy på CoddyKit. Detta är lektion 3 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 Competitive Programming Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Competitive Programming Academy innehåller totalt 4 lektioner.

Enkelt att räkna

Att räkna hur ofta saker förekommer är vanligt i tävlingar. Modulen collections innehåller två verktyg som gör räkningen enkel. 🧮

Problemet med saknade nycklar

Vanliga dict-objekt orsakar ett KeyError när ni ökar värdet för en nyckel som ännu inte finns. Specialiserade strukturer tar hand om det åt er.

Möt Counter

En Counter räknar förekomster i valfri itererbar datastruktur på en enda rad och använder varje objekts frekvens som värde. Saknade nycklar räknas helt enkelt som noll.

from collections import Counter
freq = Counter(nums)

Läs en räkning

Indexera en Counter som en dict, men en saknad nyckel returnerar noll i stället för att orsaka ett fel. Uppslag blir därmed helt säkra.

print(freq[5])
print(freq[999])

Vanligaste objekten

Anropa most_common för att få objekten sorterade från högsta till lägsta antal. Ange ett tal för att begränsa hur många av de vanligaste posterna som returneras.

top3 = freq.most_common(3)

Counter-objekt kan räknas ihop

Ni kan addera eller subtrahera två Counter-objekt för att kombinera räkningar. Matchande nycklar slås ihop och summorna hålls automatiskt korrekta.

total = Counter(a) + Counter(b)

Möt defaultdict

En defaultdict tillhandahåller ett nytt standardvärde för varje ny nyckel, så ingen kontroll av förekomsten behövs först. Ni anger standardfabriken.

from collections import defaultdict
count = defaultdict(int)

Öka utan skyddskontroller

Med defaultdict(int) börjar en saknad nyckel på noll, så värdet kan ökas direkt. Ingen kontroll med if och in försvårar loopen.

for v in nums:
    count[v] += 1

Listor som standard

Använd defaultdict(list) när varje nyckel samlar flera värden. Att lägga till i en helt ny nyckel börjar helt enkelt med en ny tom lista.

groups = defaultdict(list)
groups[key].append(item)

Counter eller defaultdict

Använd Counter när ni bara räknar objekt, och defaultdict när varje nyckel behöver listor, mängder eller anpassade standardvärden. 🎯

Anagram på en enda rad

Två ord är anagram exakt när deras Counter-objekt är lika. Jämförelsen hanterar frekvensen för varje bokstav på en gång.

is_anagram = Counter(s) == Counter(t)

Snabb kontroll

Ni vill räkna förekomster samtidigt som saknade nycklar ökas på ett säkert sätt.

Sammanfattning

Counter räknar objekt direkt och rangordnar dem, medan defaultdict hoppar över kontroller av saknade nycklar för räkningar, listor eller mängder. Båda eliminerar onödig standardkod. 🚀

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
30
Lektioner
120

Vanliga frågor

Är lektionen ”Counter och defaultdict i praktiken” gratis?

Ja – hela texten till ”Counter och defaultdict i praktiken” 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 Competitive Programming Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Competitive Programming Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Counter och defaultdict i praktiken”?

Räkna objekt utan fel på saknade nycklar Ni övar på Competitive Programming 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 Competitive Programming Academy?

Du behöver inga förkunskaper. Utbildningen i Competitive Programming 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 3 av 4.

Hur lång tid tar lektionen ”Counter och defaultdict i praktiken”?

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 Competitive Programming Academy-lektionen?

Ja. Varje Competitive Programming 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. Mängder för medlemskap och deduplicering
  2. Dictionaries som uppslagstabeller
  3. Counter och defaultdict i praktiken
  4. Gruppera och sortera i fack med en map
← Tillbaka till Competitive Programming Academy