Anasayfa / PYTHON / Python Sözlük (Dictionary) Nedir ve Nasıl Kullanılır?

Python Sözlük (Dictionary) Nedir ve Nasıl Kullanılır?

Python programlamaya yeni başlayanların en çok kullanacağı ve en sevdiği veri yapılarından biri hiç şüphesiz Sözlükler (Dictionaries) olacaktır. Daha önceki derslerde, birden fazla veriyi bir arada tutmak için “Listeler” (Lists) ve “Demetler” (Tuples) gibi yapıları incelemiş olabilirsiniz. Ancak verileriniz karmaşıklaştıkça ve her bir veriye özel bir isimle (etiketle) ulaşmak istediğinizde listeler yetersiz kalır. İşte bu noktada devreye Python sözlükleri girer.

PYTHON SÖZLÜKLER EĞİTİM VİDEOMUZU İZLEMEK İÇİN TIKLAYIN

Hazırladığımız bu detaylı rehberde, Python sözlük yapısının ne olduğunu, nasıl oluşturulduğunu ve projelerinizde size nasıl hız kazandıracağını gerçek hayat örnekleriyle, sıfırdan başlayan birinin rahatlıkla anlayabileceği şekilde ele alacağız.

1. Python’da Sözlük (Dictionary) Nedir?

Gerçek hayattaki bir sözlüğü veya telefon rehberini düşünün. Bir kelimenin anlamını bulmak için önce kelimeyi (anahtarı) ararsınız ve karşılığında onun açıklamasına (değerine) ulaşırsınız. Python’daki sözlükler de tam olarak bu mantıkla çalışır. Python programlama dilinde sırasız, değiştirilebilir ve belirli bir konuma sahip koleksiyonlar sözlük olarak adlandırılır.

Bir sözlük nesnesi, verileri anahtar-değer (key-value) ikilileri şeklinde hafızasında tutar. Listelerin aksine, sözlüklerdeki elemanlara indeks numarası (0, 1, 2…) ile değil, sizin belirlediğiniz bu “anahtarlar” (keys) üzerinden erişilir. Sözlüklerin en temel kuralı, bir sözlükte aynı anahtardan (key) iki tane bulunamamasıdır; yani anahtarlar tamamen benzersiz (unique) olmalıdır.

2. Sözlük Nasıl Oluşturulur?

Python’da bir sözlük oluşturmanın birkaç farklı yolu vardır. En yaygın olanı, süslü parantez (ya da diğer adıyla kırlangıç parantez {}) kullanmaktır. Süslü parantezler arasına, her bir anahtar ve değerin arasına iki nokta üst üste (:) koyarak elemanlarımızı yazarız ve her bir ikiliyi virgülle ayırırız.

Örnek 1: Süslü Parantez ile Sözlük Oluşturma

kullanici = {"Ad": "Ahmet", "Soyad": "Yılmaz", "Meslek": "Mühendis", "Yaş": 30}
print(kullanici)

Boş bir sözlük oluşturmak isterseniz sadece sozluk = {} yazmanız yeterlidir. Ayrıca Python, sözlük oluşturmak için bize dict() adında yerleşik (built-in) bir fonksiyon da sunar.

Örnek 2: dict() Fonksiyonu ile Sözlük Oluşturma

arabalar = dict(marka="Ford", model="Mustang", yil=1964)
print(arabalar)

3. Sözlük Elemanlarına Nasıl Ulaşılır?

Oluşturduğunuz bir sözlüğün içindeki verilere ulaşmak için iki temel yöntem bulunur: köşeli parantez [] kullanımı ve .get() metodu.

Köşeli Parantez Kullanımı: Tıpkı listelerde olduğu gibi köşeli parantez kullanabilirsiniz, ancak içeriye indeks numarası değil, ulaşmak istediğiniz verinin “anahtar” (key) ismini yazmalısınız.

donanim = {"Türü": "RAM", "Tipi": "DDR4", "Kapasitesi": "8 GB"}
print(donanim["Türü"]) # Çıktı: RAM

Kritik Bilgi: Erişim için köşeli parantez kullanıldığında, eğer aranan anahtar sözlükte yoksa programınız çöker ve bir hata (KeyError istisnası) verir.

.get() Metodu Kullanımı: Hata almamak için çok daha güvenli olan .get() metodunu kullanabilirsiniz. Bu metot, aradığınız anahtar sözlükte bulunamazsa programı çökertmek yerine size varsayılan olarak None (hiçlik) değerini döndürür. İsterseniz anahtar bulunamadığında kendi belirleyeceğiniz bir uyarı mesajını da yazdırabilirsiniz.

kisi = {"Ad": "Ayşe", "Yaş": 25}
# "Ad" anahtarı var, ekrana "Ayşe" yazar.
print(kisi.get("Ad"))

# "Meslek" anahtarı yok, hata vermek yerine "Bulunamadı" yazar.
print(kisi.get("Meslek", "Bulunamadı"))

4. Sözlükleri Değiştirme ve Yeni Eleman Ekleme

Python’da sözlükler değiştirilebilir (mutable) veri tipleridir; yani oluşturulduktan sonra içlerine yeni eleman eklenebilir, mevcut elemanlar güncellenebilir veya silinebilir.

Sözlüğe yeni bir “anahtar:değer” ikilisi eklemek veya var olanı değiştirmek için doğrudan atama yapabilirsiniz.

donanim = {"Türü": "RAM", "Tipi": "DDR4", "Kapasitesi": "8 GB"}
# Var olan veriyi güncelleme
donanim["Kapasitesi"] = "16 GB"
# Yeni veri ekleme
donanim["Hızı"] = "3200 MHz"
print(donanim)
# Çıktı: {'Türü': 'RAM', 'Tipi': 'DDR4', 'Kapasitesi': '16 GB', 'Hızı': '3200 MHz'}

,. Birden fazla güncellemeyi aynı anda yapmak için .update() metodunu da kullanabilirsiniz.

5. Sözlükten Eleman Silme

Sözlükten veri silmek için en sık başvurulan iki yöntem del anahtar kelimesi ve .pop() metodudur.

  • .pop() Metodu: Silinen öğenin değerini size geri döndürür, böylece o veriyi başka bir yerde kullanabilirsiniz. silinen_deger = donanim.pop("Kapasitesi")
  • del İfadesi: Sadece veriyi veya sözlüğün tamamını hafızadan siler. del donanim["Tipi"]
  • .clear() Metodu: Sözlüğü tamamen silmek yerine içini boşaltarak tertemiz (boş) bir sözlük bırakmak istiyorsanız .clear() fonksiyonu kullanılır.

6. Sözlüklerde Döngü (Loop) ve Koşul Kullanımı

Sözlükler üzerinde gezinmek (iterasyon) için for döngülerini kullanmak harika bir yöntemdir. Python bize sözlüğün parçalarına ulaşmamız için üç özel metot sunar:

  • .keys(): Sadece anahtarları getirir.
  • .values(): Sadece değerleri getirir.
  • .items(): Hem anahtarı hem de değeri aynı anda bir ikili olarak getirir.

Döngü Örneği:

meyveler = {"Elma": 5, "Armut": 3, "Muz": 8}
for anahtar, deger in meyveler.items():
    print(f"Stokta {deger} kilo {anahtar} var.")

Ayrıca, bir verinin sözlükte olup olmadığını kontrol etmek için koşullu ifadelerle birlikte in operatörünü kullanabilirsiniz. Örneğin if "Elma" in meyveler: kodu, “Elma” anahtarı sözlükte varsa “True” (Doğru) döndürür.

7. İleri Seviye: İç İçe Sözlükler (Nested Dictionaries)

Gerçek dünyadaki veriler genellikle daha karmaşıktır. Bir sözlüğün içinde sadece metin veya sayı değil, başka bir sözlük de tutabilirsiniz. Bir sözlüğün içinde değer (value) olarak başka bir sözlüğün bulunduğu bu yapılara iç içe sözlükler (nested dictionaries) adı verilir. Örneğin bir şirketteki farklı departmanları ve o departmandaki çalışanları listelemek için mükemmel bir yapıdır.

calisanlar = {
    "Yazılım": {"kisi_id": 101, "ad": "Kemal", "maas": 8000},
    "Pazarlama": {"kisi_id": 102, "ad": "Elif", "maas": 6000}
}
print(calisanlar["Yazılım"]["ad"]) # Çıktı: Kemal

Burada içteki veriye ulaşmak için peş peşe köşeli parantezler (önce dış anahtar, sonra iç anahtar) kullanıldığına dikkat edin.

8. Pratiklik Uzmanı: Dictionary Comprehension (Sözlük Üreteçleri)

Dictionary comprehension, bir döngü kullanarak tek satırda ve çok hızlı bir şekilde yeni bir sözlük yaratmamızı sağlayan pratik bir yöntemdir. Özellikle verileri dönüştürürken veya filtrelerken hayat kurtarır.

Genel yapısı şu şekildedir: {anahtar_ifadesi: deger_ifadesi for eleman in liste}.

Örneğin, 0’dan 4’e kadar olan sayıları anahtar, bu sayıların karesini ise değer olarak alan bir sözlüğü tek satırda oluşturalım:

kareler = {x: x**2 for x in range(5)}
print(kareler) # Çıktı: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

. Bu yapı, listelerde gördüğümüz liste üreteçlerine (list comprehension) çok benzer, tek farkı süslü parantez kullanılmasıdır.

Sonuç

Python’da sözlükler (dictionaries), verileri isimlendirerek organize etmenin ve bu verilere ışık hızında ulaşmanın en iyi yoludur. Anahtar-değer mantığını iyi kavramak; ileride göreceğiniz veri bilimi projelerinden web geliştirmeye, JSON formatındaki internet verilerini okumaktan veritabanı yönetimine kadar hemen her alanda karşınıza çıkacaktır. Kod editörünüzü açın ve bu rehberdeki metotları (get(), keys(), update() vb.) kendi uyduracağınız senaryolarla test ederek öğrenmenizi pekiştirin! Mükemmel kodlamalar dileriz.

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir