Python ile Dictionary (Sözlük) Kullanımı

Python programlama dilinde “dictionary” (sözlük), “List“, “Tuple” ve “Set” ile beraber verileri depolamak için kullanılan dört koleksiyon tipinden biridir. Biz bu yazımızda, Python’daki sözlüklerin, yani “dictionary” veri tipinin ne olduğunu, nasıl oluşturulup kullanıldığını adım adım inceleyeceğiz.

Python’da Dictionary

Python’da, diğer koleksiyon yapılarından farklı olarak bilgileri anahtar ve değer çiftleri şeklinde saklamak için dictionary veri tipi tercih edilir. Örneğin; bir kişiye ait “ad”, “soyad” ve “yaş” bilgilerini bu yapı içinde saklamak oldukça kolaydır. Bakınız:

kisi = {
    "ad": "John",
    "soyad": "Doe",
    "yas": 30
}

print(kisi["ad"])  # Çıktı: John
print(kisi["soyad"])  # Çıktı: Doe
print(kisi["yas"])  # Çıktı: 30

Bu örnekte kisi adında bir dictionary oluşturduk. Bu sözlük içinde “ad”, “soyad” ve “yas” anahtarlarını kullanarak John Doe’nun bilgilerini sakladık. Daha sonra bu bilgilere anahtarlar aracılığıyla eriştik ve yazdırdık.

Süslü parantezler ({}) içerisinde tanımlanan dictionary elemanları sırasızdır, bu nedenle indeks numarasıyla doğrudan erişemezsiniz. Bunun yerine, erişmek istediğimiz değere ulaşmak için ilgili anahtarı kullanırız. Örneğin:

kisi = {
    "ad": "John",
    "soyad": "Doe",
    "yas": 30
}

# Doğru kullanım:
print(kisi["ad"])  # Çıktı: John

# Yanlış kullanım:
# print(kisi[0])  # Bu satır hata verir.

3.7 sürümünden itibaren dictionary‘e, elemanları eklenme sırasına göre saklanma özelliği gelmiştir. Yani, bir dictionary’yi tanımladığınızda elemanlarını eklediğiniz sıra ile aynı sırayla saklanır. Ancak bu demek değildir ki, elemanlara indeks numarasıyla erişebiliriz. Bu yalnızca elemanların eklenme sırasını koruduğu anlamına gelir. Bu özellik, özellikle dictionary üzerinde döngülerde işlem yaparken faydalı olmaktadır. Örneğin:

notlar = {
    "matematik": 90,
    "fen": 85,
    "sosyal": 78
}

for ders, notu in notlar.items():
    print(f"{ders.capitalize()}: {notu}")


"""
Çıktı:
Matematik: 90
Fen: 85
Sosyal: 78
"""

❗ Value kısmı (değer) bütün veri tiplerini içerebilir ancak keys (anahtar) bölümü değiştirilemez (immutable) veri tiplerinden oluşmalıdır (örneğin string, int, float, tuple). Sözlük içindeki değerlere, anahtarı köşeli parantez arasında yazarak erişilebilmektedir. Örneğin:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict["model"]) #çıktı: Mustang

❗ Sözlükler, aynı anahtara sahip iki elemana sahip olamaz. Aksi takdirde yinelenen değerler, mevcut değerlerin üzerine yazacaktır. Bakınız:

bu_sozluk = {
  "marka": "Ford",
  "model": "Mustang",
  "yil": 1964,
  "yil": 2020 #yinelenen değer mevcut değerin üstüne yazar
}
print(bu_sozluk)  #çıktı: {'marka': 'Ford', 'model': 'Mustang', 'yil': 2020}

❗ Sözlük içindeki bir elemanın değeri köşeli parantez arasında referans anahtarını belirtilerek değiştirilebilmektedir.

otomobil = {
  "uretici": "Renault",
  "model": "Clio",
  "yil": 2009
}
otomobil["yil"] = 2020;
print(otomobil) #çıktı: {'uretici': 'Renault', 'model': 'Clio', 'yil': 2020}

O halde, tek bir cümle kurarak Python’da dictionary’nin ne olduğunu şu şekilde özetleyebiliriz: Dictionary koleksiyonları, süslü parantezler içerisinde {} anahtar-değer çiftlerinden oluşan, sırasız, değiştirilebilir ve herhangi bir veri tipinde değer barındırabilen veri koleksiyonlarıdır.

Python’da dictionary, list, tuple ve set arasındaki özellikler aşağıdaki tabloda derlenmiştir. Bakınız:

ÖzellikDictionaryListTupleSet
Tanımlama{anahtar: değer}[eleman1, eleman2, ...](eleman1, eleman2, ...){eleman1, eleman2}
SıralıHayırEvetEvetHayır
DeğiştirilebilirEvet (sadece değerler)EvetHayırHayır (ama eleman ekleyip çıkarabilirsiniz)
Elemanların ÖzgünlüğüAnahtarlar için evetHayırHayırEvet
Anahtar-Değer ÇiftiEvetHayırHayırHayır
IndekslemeAnahtarlar ileIndeks numarası ileIndeks numarası ileIndeksleme desteklenmez
EklemeAnahtar-Değer çifti eklenirSonuna veya belirli bir konumaDeğiştirilemezEleman ekleyebilir
SilmeAnahtar ileIndeks numarası veya değer ileDeğiştirilemezEleman silinebilir

Python’da “For” Döngüsü ile Dictionary Kullanımı

Python’da for döngüsü yardımıyla sözlük içindeki anahtar ve değerler tek tek ele alınabilir.

  • Sözlükteki anahtar değerleri döndürmek için:
kisi = {
	"Adi": "Brad",
	"Soyadi": "Pitt",
	"Yas": 57
}
for x in kisi:
  print(x)

"""
Çıktı:
Adi
Soyadi
Yas
"""
  • Sözlükteki değerleri döndürmek için:
kisi = {
	"Adi": "Brad",
	"Soyadi": "Pitt",
	"Yas": 57
}
for x in kisi:
  print(kisi[x])

"""
Çıktı:
Brad
Pitt
57
"""
  • Sözlükteki değerler values() metodu kullanarak da yazdırılabilir:
kisi = {
	"Adi": "Brad",
	"Soyadi": "Pitt",
	"Yas": 57
}
for x in kisi.values():
  print(x)

"""
Çıktı:
Brad
Pitt
57
"""
  • Hem anahtar hem de değerleri for döngüsüyle yazdırmak için items() metodu kullanılır:
kisi = {
	"Adi": "Brad",
	"Soyadi": "Pitt",
	"Yas": 57
}
for x, y in kisi.items():
  print(x, y)

"""
Çıktı:
Adi Brad
Soyadi Pitt
Yas 57
"""

Python Dictionary Metotları

MetotAçıklama
clear()Tüm elemanları sözlükten kaldırır
copy()Sözlüğün bir kopyasını döndürür
fromkeys()Belirtilen anahtarlara ve değere sahip bir sözlük döndürür
get()Belirtilen anahtarın değerini döndürür
items()Her anahtar değer çifti için bir tanımlama grubu içeren bir liste döndürür
keys()Sözlüğün anahtarlarını içeren bir liste döndürür
pop()Belirtilen anahtarla elemanı kaldırır
popitem()Son eklenen anahtar/değer çiftini kaldırır
setdefault()Belirtilen anahtarın değerini döndürür
update()Sözlüğü belirtilen anahtar/değer çiftleriyle günceller
values()Sözlükteki tüm değerlerin bir listesini döndürür
Python Sözlük Metotları
print ("-------celar-------")
car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

car.clear()
print(car)

print ("-------copy-------")
car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = car.copy()
print(x)

print ("-------fromkeys-------")
x = ('key1', 'key2', 'key3')
y = 0
thisdict = dict.fromkeys(x, y)
print(thisdict)

print ("-------get-------")
car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = car.get("model")
print(x)

print ("-------items-------")
car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = car.items()
print(x)

print ("-------keys-------")
car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

x = car.keys()
print(x)

print ("-------pop-------")

car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

car.pop("model")

print(car)

İlgili Makaleler

Bir yanıt yazın

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

Başa dön tuşu