0Pricing
DSA Interview Prep · Ders

Python’da Sözlükler ve Kümeler

Sözlük ve küme oluşturmayı, üyelik denetimini ve collections.Counter ile sıklık sayma gibi yaygın kalıpları keşfedin.

Python’da Sözlükler ve Kümeler, CoddyKit'te ücretsiz bir DSA Interview Prep dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DSA Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DSA Interview Prep kursu toplamda 4 dersten oluşur.

Python Sözlükleri: Anahtar-Değer Depoları

Python sözlüğü, anahtarları değerlere bağlar; arama, ekleme ve silme işlemleri ortalama O(1) sürer. İki toplamı, anagram denetimleri ve frekans sayımı işlemlerinin temelini oluşturur. Kod bunu gösterir.

d = {'apple': 3, 'banana': 5}
print(d['apple'])   # 3
d['cherry'] = 7
print(len(d))       # 3
print('banana' in d)  # True
del d['apple']
print(d)            # {'banana': 5, 'cherry': 7}

.get() ile Güvenli Arama

Eksik bir anahtarı d[key] ile okumak KeyError hatasına yol açar. Bunun yerine d.get(key, default) kullanarak bir yedek değer döndürün; bu, beklenmedik çalışma zamanı hatalarını önleyen güvenli bir alışkanlıktır.

freq = {}
words = ['the', 'cat', 'sat', 'on', 'the', 'mat']
for w in words:
    freq[w] = freq.get(w, 0) + 1
print(freq)
# {'the': 2, 'cat': 1, 'sat': 1, 'on': 1, 'mat': 1}

print(freq.get('dog', 0))  # 0  (no KeyError)

Daha Temiz Gruplama için defaultdict

defaultdict(list), her yeni anahtar için otomatik olarak boş bir liste oluşturur; böylece gruplama problemlerindeki tekrar eden temel kod ortadan kalkar. defaultdict(int), kolay sayım için her anahtarı 0'dan başlatır.

from collections import defaultdict

groups = defaultdict(list)
words = ['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
for w in words:
    key = ''.join(sorted(w))  # canonical anagram key
    groups[key].append(w)

print(list(groups.values()))
# [['eat','tea','ate'], ['tan','nat'], ['bat']]

Counter: Hızlı Frekans Haritaları

Counter, sayım için oluşturulmuş bir sözlüktür: herhangi bir yinelenebilir nesne verin, anında bir frekans haritası elde edin. most_common(k), en yüksek k değeri döndürür. Kod bir anagram denetimini gösterir.

from collections import Counter

c = Counter('abracadabra')
print(c)           # Counter({'a':5,'b':2,'r':2,'c':1,'d':1})
print(c.most_common(2))  # [('a', 5), ('b', 2)]

# Valid anagram check
def is_anagram(s, t):
    return Counter(s) == Counter(t)

print(is_anagram('anagram', 'nagaram'))  # True

Python Kümeleri: Sırasız Benzersiz Koleksiyonlar

Bir küme, benzersiz öğeleri tutar ve üyelik denetimlerini O(1) sürede yapar. {1, 2, 3} veya set(iterable) kullanabilirsiniz; ancak {} bir sözlük oluşturur, bu nedenle boş küme için set() kullanın. Yinelenenleri bulmak için idealdir.

seen = set()
nums = [1, 2, 3, 2, 1, 4]
duplicates = []
for n in nums:
    if n in seen:          # O(1) check
        duplicates.append(n)
    seen.add(n)
print(duplicates)  # [2, 1]
print(len(seen))   # 4  (unique values)

Mülakatlar için Küme İşlemleri

Kümeler matematiksel işlemler yapar: | birleşim, & kesişim, - fark, ^ simetrik fark anlamına gelir. Bunlar "ortak öğeler" türündeki soruları tek satırda çözer.

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

print(a | b)  # {1, 2, 3, 4, 5, 6}  union
print(a & b)  # {3, 4}              intersection
print(a - b)  # {1, 2}              difference
print(a ^ b)  # {1, 2, 5, 6}        symmetric diff

Üyelik Denetimi: Liste ve Küme Karşılaştırması

Seçtiğiniz veri yapısı hızı değiştirir. Bir listede in ile denetim O(n), bir kümede ise O(1) sürer. Tekrarlanan aramalardan önce listeyi kümeye dönüştürmek yaygın bir hızlandırma yöntemidir.

word_list = ['apple', 'banana', 'cherry', 'date']
word_set  = set(word_list)

# O(n) per check
print('banana' in word_list)  # True

# O(1) per check
print('banana' in word_set)   # True

# Practical example: find common elements
a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7]
common = [x for x in a if x in set(b)]
print(common)  # [3, 4, 5]

Sözlüklerde Yineleme: Anahtarlar, Değerler, Öğeler

Bir sözlük üzerinde .keys(), .values() veya .items() ile döngü kurun. Döngünün ortasında asla anahtar silmeyin; önce bunları bir listede toplayın, ardından silin. Koda bakın.

scores = {'Alice': 90, 'Bob': 75, 'Carol': 88}

for name, score in scores.items():
    print(f'{name}: {score}')

# Find key with max value
best = max(scores, key=scores.get)
print(best)  # Alice

# Safe deletion
to_del = [k for k, v in scores.items() if v < 80]
for k in to_del:
    del scores[k]
print(scores)  # {'Alice': 90, 'Carol': 88}

Frozenset: Özetlenebilir Kümeler

Bir frozenset değiştirilemez bir kümedir; bu nedenle bir sözlüğün anahtarı olabilir veya başka bir kümenin içinde bulunabilir. Sıralamanın önemli olmadığı durumlarda anagramları harf kümelerine göre gruplamak için kullanışlıdır.

from collections import defaultdict

words = ['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
groups = defaultdict(list)
for w in words:
    key = frozenset(w)  # hashable; 'eat','tea','ate' all share same key
    groups[key].append(w)

print([sorted(g) for g in groups.values()])
# [['ate','eat','tea'], ['nat','tan'], ['bat']]

Dönüşümler için Sözlük Üreteçleri

Sözlük üreteçleri tek satırda bir eşleme oluşturur: {k: v for ...}. Bir sözlüğü tersine çevirmek veya çiftleri filtrelemek için kullanışlıdır. Not: Tersine çevirme, değerlerin benzersiz olduğunu varsayar. Koda bakın.

# Invert a dict
original = {'a': 1, 'b': 2, 'c': 3}
inverted = {v: k for k, v in original.items()}
print(inverted)  # {1:'a', 2:'b', 3:'c'}

# Filter by value
scores = {'Alice': 90, 'Bob': 55, 'Carol': 78}
passing = {k: v for k, v in scores.items() if v >= 60}
print(passing)  # {'Alice': 90, 'Carol': 78}

En Uzun Ardışık Dizi

Kümeler, en uzun ardışık dizi problemini O(n) sürede çözer: tüm sayıları bir kümeye ekleyin, ardından yalnızca öncülü eksik olan her sayıdan başlayarak ileriye doğru sayın. Sıralama gerekmez.

def longest_consecutive(nums):
    num_set = set(nums)
    best = 0
    for n in num_set:
        if n - 1 not in num_set:  # start of sequence
            cur = n
            streak = 1
            while cur + 1 in num_set:
                cur += 1
                streak += 1
            best = max(best, streak)
    return best

print(longest_consecutive([100,4,200,1,3,2]))  # 4 (1,2,3,4)

Kısa Kontrol

Kısa bir kontrol yapalım: Bu dersteki sözlük ve küme fikirlerinin ne kadarını öğrendiğinizi görün. Burada içgüdülerinize güvenin. 🎯

Ders Özeti

Özet: sözlükler sayım ve gruplama için O(1) sürede arama sağlar, Counter ve defaultdict tekrar eden temel kodu azaltır ve kümeler O(n) taramaları O(1) denetimlere dönüştürür.

Sıkça Sorulan Sorular

“Python’da Sözlükler ve Kümeler” dersi ücretsiz mi?

Evet — “Python’da Sözlükler ve Kümeler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DSA Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DSA Interview Prep kursu toplamda 4 dersten oluşur.

“Python’da Sözlükler ve Kümeler” dersinde ne öğreneceğim?

Sözlük ve küme oluşturmayı, üyelik denetimini ve collections.Counter ile sıklık sayma gibi yaygın kalıpları keşfedin. DSA Interview Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DSA Interview Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DSA Interview Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Python’da Sözlükler ve Kümeler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DSA Interview Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DSA Interview Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Listeler, Demetler ve Dilimleme
  2. Python’da Sözlükler ve Kümeler
  3. Kapsamlı İfadeler ve Yerleşik İşlevler
  4. İşlevler, Kapanımlar ve Lambda
← DSA Interview Prep Sayfasına Dön