Python dictionary kullanımı, verileri anahtar-değer (key-value) çiftleri halinde saklamak ve hızla erişmek için başvurulan temel yapılardan biridir. Liste yerine ne zaman sözlük kullanacağınızı ve sözlüğü nasıl verimli kullanacağınızı bu rehberde adım adım öğreneceksiniz. **Sözlük ne zaman kullanılır?** Verileri bir anahtar aracılığıyla anlamlı şekilde etiketlemek istediğinizde sözlük idealdir. Örneğin, "kullanıcının adı, yaşı ve e-postası" gibi ilişkili bilgiler listede ["Ahmet", 28, "ahmet@ornek.com"] olarak saklanabilir ama sözlükte hangi değerin ne anlama geldiği anında anlaşılır. **Adım 1: Sözlük oluşturun** ```python # Boş sözlük kullanici = {} # Değerlerle sözlük kullanici = { "ad": "Ahmet", "yas": 28, "sehir": "İstanbul" } ``` Anahtarlar genellikle string veya sayıdır; değerler ise herhangi bir Python nesnesi olabilir (liste, başka sözlük dahil). **Adım 2: Değerlere erişin** ```python print(kullanici["ad"]) # Ahmet print(kullanici["yas"]) # 28 # Güvenli erişim, anahtar yoksa None döner, hata vermez print(kullanici.get("email")) # None print(kullanici.get("email", "Belirtilmemiş")) # Belirtilmemiş ``` Python dictionary kullanımında köşeli parantez erişimi (`kullanici["email"]`), anahtar yoksa `KeyError` fırlatır. Anahtarın var olup olmadığından emin değilseniz her zaman `.get()` metodunu tercih edin. **Adım 3: Değer ekleyin ve güncelleyin** ```python # Yeni anahtar ekle kullanici["email"] = "ahmet@ornek.com" # Var olan değeri güncelle kullanici["yas"] = 29 # Birden fazla değer güncelle kullanici.update({"sehir": "Ankara", "yas": 30}) ``` **Adım 4: Anahtar kontrolü yapın** ```python # Anahtar var mı? if "email" in kullanici: print(kullanici["email"]) # Anahtar yoksa ekle, varsa değiştirme kullanici.setdefault("puan", 0) ``` `setdefault`, özellikle sayaç veya liste biriktirme işlemlerinde çok kullanışlıdır. **Adım 5: Sözlükte döngü kurun** ```python # Sadece anahtarlar for anahtar in kullanici: print(anahtar) # Sadece değerler for deger in kullanici.values(): print(deger) # Anahtar ve değer birlikte for anahtar, deger in kullanici.items(): print(f"{anahtar}: {deger}") ``` Python dictionary kullanımında `.items()` döngüsü en yaygın ve okunabilir yöntemdir. **Adım 6: Sözlük üreteçleri (dict comprehension)** ```python sayilar = [1, 2, 3, 4, 5] # Sayıların karelerini sözlükte sakla kareler = {sayi: sayi**2 for sayi in sayilar} print(kareler) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25} # Filtreli üreteç cift_kareler = {sayi: sayi**2 for sayi in sayilar if sayi % 2 == 0} print(cift_kareler) # {2: 4, 4: 16} ``` **Pratik örnek: Kelime sayacı** ```python metin = "elma armut elma kiraz armut elma" sayac = {} for kelime in metin.split(): sayac[kelime] = sayac.get(kelime, 0) + 1 print(sayac) # {'elma': 3, 'armut': 2, 'kiraz': 1} ``` Alternatif: `collections.Counter(metin.split())` tek satırda aynı sonucu verir. **Yaygın hatalar** - `KeyError` almak: Doğrulama yapmadan köşeli parantez erişimi kullanmak. Her zaman `.get()` veya `in` kontrolünü tercih edin. - Sözlüğü döngü içinde değiştirmek: Döngü sırasında anahtar eklemek veya silmek `RuntimeError` verir. Kopyası üzerinde çalışın. - Anahtarlar olarak mutable (değiştirilebilir) nesneler kullanmak: Liste anahtar olamaz; `TypeError` verir. Tuple kullanın.