0Pricing
Python Academy · Ders

defaultdict

Sözlük değerlerini otomatik olarak başlatın

defaultdict, CoddyKit'te ücretsiz bir Python Academy 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Eksik anahtar sorunu

Normal bir dict ile mevcut olmayan bir anahtara erişmek KeyError yükseltir. Değerleri adım adım oluşturmak istediğinizde bu can sıkıcıdır.

d = {}
try:
    d['x'].append(1)
except KeyError as e:
    print('KeyError:', e)

defaultdict'e giriş

defaultdict, collections modülünden gelen ve eksik her anahtar için varsayılan bir değer üreten bir üretici işlev alan sözlük türüdür. Şu şekilde içe aktarın: from collections import defaultdict.

from collections import defaultdict
d = defaultdict(int)
print(d['missing'])
print(dict(d))

int ile sayma

defaultdict(int) ile eksik anahtarların varsayılan değeri 0 olur; böylece önce kontrol etmeden artırabilirsiniz.

from collections import defaultdict
counts = defaultdict(int)
for ch in 'banana':
    counts[ch] += 1
print(dict(counts))

list ile gruplama

defaultdict(list), yeni anahtarlar için boş bir liste oluşturur; bu da öğeleri gruplara ayırmak için idealdir.

from collections import defaultdict
groups = defaultdict(list)
words = ['apple', 'ant', 'bee', 'bear']
for w in words:
    groups[w[0]].append(w)
print(dict(groups))

set ile toplama

Anahtar başına benzersiz değerler istediğinizde defaultdict(set) kullanın. Yinelenen değerler otomatik olarak kaldırılır.

from collections import defaultdict
seen = defaultdict(set)
pairs = [('a', 1), ('a', 1), ('a', 2), ('b', 3)]
for k, v in pairs:
    seen[k].add(v)
print(dict(seen))

Üretici çağrılabilir olmalıdır

Bağımsız değişken, hiç bağımsız değişken almayan ve varsayılan değeri döndüren bir çağrılabilirdir. int, list, set ve dict çalışır; çünkü bunları çağırmak boş bir değer döndürür.

from collections import defaultdict
print(int())
print(list())
print(set())

lambda ile özel varsayılan değer

Özel bir varsayılan değer döndürmek için lambda gibi, bağımsız değişken almayan herhangi bir çağrılabilir sağlayabilirsiniz.

from collections import defaultdict
scores = defaultdict(lambda: 100)
print(scores['new_player'])
scores['alice'] -= 10
print(dict(scores))

İç içe varsayılan sözlükler

Bir üretici kendisi bir defaultdict oluşturabilir; böylece elle kurulum yapmadan iç içe yapılar oluşturabilirsiniz.

from collections import defaultdict
table = defaultdict(lambda: defaultdict(int))
table['fruit']['apples'] += 3
table['fruit']['pears'] += 2
print(table['fruit']['apples'])
print(table['fruit']['pears'])

Erişim anahtarı oluşturur

Dikkat: Eksik bir anahtarı yalnızca okumak, anahtarı varsayılan değerle ekler. Erişimden sonra anahtar sözlükte mevcut olur.

from collections import defaultdict
d = defaultdict(int)
_ = d['ghost']
print('ghost' in d)
print(dict(d))

Eklemeden kontrol etme

Bir anahtarı oluşturmadan kontrol etmek için üreticiyi hiçbir zaman tetiklemeyen .get() yöntemini veya in işlecini kullanın.

from collections import defaultdict
d = defaultdict(int)
print(d.get('safe', 'default'))
print('safe' in d)
print(dict(d))

Yeniden dict'e dönüştürme

Düz bir sözlük istediğinizde, örneğin bir işlevden döndürmeden veya düzgün şekilde yazdırmadan önce, defaultdict nesnesini dict() içine sarın.

from collections import defaultdict
dd = defaultdict(list)
dd['a'].append(1)
plain = dict(dd)
print(type(plain))
print(plain)

Hızlı Kontrol

defaultdict işlevine geçirilen bağımsız değişken neyi temsil eder?

Özet: Varsayılan sözlük

Temel noktalar:

  • defaultdict(factory), eksik anahtarlar için değerleri otomatik olarak oluşturur.
  • int 0 verir (sayma), list [] verir (gruplama), set ise boş küme verir (benzersiz gruplama).
  • Üretici, lambda dahil olmak üzere hiç bağımsız değişken almayan herhangi bir çağrılabilir olabilir.
  • Eksik bir anahtarı okumak onu ekler; güvenle kontrol etmek için .get() veya in kullanın.
from collections import defaultdict
g = defaultdict(list)
for w in ['cat', 'cow', 'dog']:
    g[w[0]].append(w)
print(dict(g))

Sıkça Sorulan Sorular

“defaultdict” dersi ücretsiz mi?

Evet — “defaultdict” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“defaultdict” dersinde ne öğreneceğim?

Sözlük değerlerini otomatik olarak başlatın Python Academy 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.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, 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.

“defaultdict” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy 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. Counter
  2. defaultdict
  3. deque
  4. namedtuple ve OrderedDict
← Python Academy Sayfasına Dön