Menu

Python Sözlükleri: dict Oluşturma, Erişim, Güncelleme ve İterasyon

Sözlükler, Python'ın anahtar-değer arama yapısıdır — temelleri aştıktan sonra sürekli başvuracağın veri tipidir.

Sözlük Bir Arama Tablosudur

Listeler konuma göre indekslenir. Sözlükler ise anahtara göre indekslenir — genellikle bir string ya da sayı — ve her anahtar bir değere eşlenir. Bu tek kayma büyük bir program kategorisinin kilidini açar: envanterler, konfigürasyonlar, JSON payload'ları, kullanıcı profilleri, önbellekler.

main.py
Output
Click Run to see the output here.

Anahtarlar ve değerler neredeyse her şey olabilir. Anahtarlar hashlenebilir olmalı (yani: sayılar, stringler, tuple'lar; listeler ya da başka dict'ler değil). Değerlerde bir kısıtlama yoktur — bir dict, başka dict'ler veya listeler dahil her şeyi tutabilir.

Sözlük Oluşturmak

Birkaç yol, her biri yerinde:

main.py
Output
Click Run to see the output here.

Değerleri Okumak

İki yol var ve seçim önemli:

main.py
Output
Click Run to see the output here.

Niyete göre seç:

  • [] kullan anahtar orada olmak zorundaysa. Yoksa, bu bir hatadır ve sesli bir hata mesajı istersin.
  • .get() kullan "yok" geçerli bir durumsa. try/except olmadan varsayılan yazmanı sağlar.

Ekleme, Güncelleme, Silme

Bir anahtara atamak ya onu oluşturur ya da günceller:

main.py
Output
Click Run to see the output here.

update() başka bir dict'i ya da çift iterable'ını birleştirir:

main.py
Output
Click Run to see the output here.

overrides içindeki ortak anahtarlar, settings içindekilerin üzerine yazılır.

Bir Anahtarı Kontrol Etmek

in anahtarları kontrol eder, değerleri değil:

main.py
Output
Click Run to see the output here.

Özellikle değerleri kontrol etmek için user.values() kullan:

main.py
Output
Click Run to see the output here.

Sözlük Üzerinde İterasyon

Üzerinde döngü kurabileceğin üç görünüm var:

main.py
Output
Click Run to see the output here.

Çoğu zaman başvuracağın .items()'dır — paketlenmiş çifti, kullanıma hazır şekilde verir.

Modern Python'da (3.7+) iterasyon sırası ekleme sırasıyla eşleşir. Bir dict "sihirli bir torba" değildir — önce a, sonra b, sonra c eklersen, iterasyon onları bu sırada verir. Bu, güvenebileceğin bir dil garantisidir.

Sözlüğü Nasıl Sıralarsın

Sözlükler ekleme sırasını korur, dolayısıyla bir dict'i "sıralamak" aslında anahtarları istediğin sırada eklenmiş yeni bir dict inşa etmek demektir:

main.py
Output
Click Run to see the output here.

sorted() bir çiftler listesi döner; bunu dict(...) ile sararak yeni sıralamayla bir sözlüğü yeniden inşa edersin. Yalnızca sıralı çiftlere ihtiyacın varsa (dict değil) dıştaki dict() çağrısını atla.

İki Sözlüğü Birleştirmek

Python 3.9+ sana | operatörünü verir:

main.py
Output
Click Run to see the output here.

Anahtar çakışmalarında sağdaki dict'in değerleri kazanır. .update() onun yerinde eşdeğeridir. Daha eski Python sürümlerinde {**defaults, **overrides} kullan.

setdefault Kalıbı

Yaygın bir ihtiyaç: "anahtar varsa değerini kullan; yoksa bir varsayılan ayarla ve sonra kullan."

main.py
Output
Click Run to see the output here.

Ya da daha iyisi, collections.Counter kullan:

main.py
Output
Click Run to see the output here.

Counter, varsayılan olarak sayma yapan bir dict alt sınıfıdır. Ne zaman olay sayısını sayıyorsan doğru seçim odur.

Dictionary Comprehension'lar

List comprehension'larla paralel, ama dict inşa etmek için:

main.py
Output
Click Run to see the output here.

Aynı kurallar, ama süslü parantezlerin içinde key: value ile.

Dict JSON'un İkizidir

Python dict'leri JSON nesneleriyle neredeyse bire bir hizalanır. Aralarında dönüşüm tek bir çağrıdır:

main.py
Output
Click Run to see the output here.

Bu yüzden dict'ler web çalışmalarında her yerde karşına çıkar — API istek ve yanıtların temelde arada ağ olan dict manipülasyonudur.

Pratik Bir Örnek

Bir kullanıcı profilini takip eden minik bir konfigürasyon benzeri program:

main.py
Output
Click Run to see the output here.

İç içe dict'ler, değiştirilebilir değerler, varsayılanla .get() — kayıt biçimli herhangi bir veri için temel araç seti.

Devam

Listeler, tuple'lar, set'ler, dict'ler. Bu dört koleksiyon elinde olduğunda, erken dönemde karşılaşacağın hemen her veriyi modelleyebilirsin. Sırada list comprehension'ı öğreneceğiz — Python'un bir koleksiyonu bir diğerine dönüştürmenin kompakt yolu.

Sıkça Sorulan Sorular

Python'da sözlük nedir?

Sözlük, anahtar-değer çiftlerinden oluşan bir koleksiyondur. Bir değeri anahtarına göre ararsın — prices[0] yerine prices['apple']. Sözlüklerin okuma ve yazması hızlıdır, anahtarlar benzersiz olmalıdır ve modern Python'da ekleme sırasını korurlar.

Python sözlüğüne nasıl anahtar eklerim?

Ona atama yap: my_dict['new_key'] = 'new value'. Anahtar zaten varsa değer üzerine yazılır. Yoksa eklenir. "Ekleme" ve "güncelleme" arasında fark yoktur — aynı söz dizimidir.

dict[key] ile dict.get(key) arasındaki fark nedir?

Anahtar yoksa dict[key] KeyError fırlatır. dict.get(key) ise onun yerine None (ya da verdiğin bir varsayılan) döndürür. Eksik anahtarlar beklenen ve normal bir durumsa .get() kullan; eksik bir anahtar bir hatayı işaret ediyorsa [key] kullan.

Coddy ile kodlamayı öğren

BAŞLA