Python’da bir öğe tutan veri yapılarından farklı olan list, tuple ve dictionary yapıları mevcuttu. List ve tuple’dan önceki yazılarda bahsedilmişti. Dictionary, anahtar ifadelerin tutulduğu referanslı bir veri yapısıdır. Sözlük veri yapısı, gerçek anlamdaki sözlük ifadesini karşılamaktadır.
Sözlük veri yapısı özellikleri
- Kapsayıcıdır.
- Sırasızdır.
- Değiştirilebilir.
Sözlük yapısını belirtirken verileri süslü parantez({}) içerisine alırız. Örneğin sözlük= {veri1: açıklama1, veri2: açıklama2} şeklinde yazılmalıdır. Ayriyeten sözlük yapısında verileri yazarken aralarına virgül koyulması unutulmamalıdır.
Bir örnekle sözlük veri yapısını inceleyelim
sozluk= { 'JIT': 'Just in Time', 'WIP': 'Work in Process', 'SMED': 'Single Minute Exchange of Dies'}
print(sozluk)
Kodların çıktısı
Sözlük verilerini ekrana getirmenin 2 yolu vardır. İlki yukarıda bulunan çıktıda gösterilmiştir.
İkinci yolu ise sözlükte bulunan tek bir veriyi getirmek isteyeceğimiz zaman tercih edilir. Bir örnekle
sozluk= { 'JIT': 'Just in Time', 'WIP': 'Work in Process', 'SMED': 'Single Minute Exchange of Dies'}
smed=sozluk["SMED"]
print(smed)
Kodun çıktısı
Yukarıda gösterildiği şekilde yazılarak sözlükteki tüm verileri çekilebilir.
Sözlükteki verilere sayısal ifadeler de atama yapılabilir.
sozluk= { 'JIT': 20, 'WIP': 40, 'SMED': 60}
print(sozluk)
Çıktısı ise
Dictionary Eleman İşlemleri
Sözlüğün bir özelliği de sırasız olmasıydı. Peki bu ne anlama geliyor?
Örneğin bir sözlük yazıp 0. indekste olan elemanı getirmeyi deneyelim.
sozluk= { 'JIT': 'Just in Time', 'WIP': 'Work in Process', 'SMED': 'Single Minute Exchange of Dies'}
sozluk[0]
Çıktısı ise
Sözlük[0] key error hatası verdi. Bu hatayı vermesinin sebebi sözlükte eleman seçme işlemini sıralı olarak gerçekleştirilememektedir.
Döngü ile Elemanlara Erişim
For() döngüsünü kullanarak (For() döngüsü diğer yazılarda detaylı olarak anlatılacaktır.) veriler üzerinde dolaşabilirsiniz. Örneğin sadece marka, modeli ve yılı yazdırılsın. (Açıklamaları yazdırılmasın.)
thisdict = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020}
for x in thisdict:
print(x)
Kodun çıktısı (Burada satırları tek tek çalıştırmak yerine tümünü çalıştırırsanız hata alma olasılığınız azalır.)
Bu seferde verilerin açıklaması yazdırılsın.
thisdict = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020}
for x in thisdict:
print(thisdict[x])
Kodun çıktısı
Eğer hem verinin hem açıklamanın yazdırılmasını isteniyorsa items() fonksiyonunu kullanmamız gerekmektedir.
thisdict = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020}
for y,z in thisdict.items():
print(y, z)
Sözlükte Eleman Ekleme ve Değiştirme
Sözlükte bulunan bir elemanı değiştirmek için örneğe bakacak olursak
thisdict = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2019}
thisdict["Yılı"]=2020
print(thisdict)
Kodun çıktısı
Yukarıda görüldüğü üzere 2019 yılı Volkswagen Golf verisini 2020 yılı Volkswagen Golf verisine dönüştürüldü.
Sözlüğe bir eleman eklemek için örneğe bakacak olursak
thisdict = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020}
thisdict["Fiyatı:"]=250000
print(thisdict)
Kodun çıktısı
Yukarıda bulunan kodlarla thisdict sözlüğüne “Fiyatı:” kriterini ekleme gerçekleştirildi.
Dictionary Silme İşlemi
Sözlükte silme işlemi yapmanın birkaç yolu bulunmaktadır. Bunlardan ilki pop() fonksiyonunu kullanarak veri silme işlemini yapmaktır. Örneğin
thisdictionary = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020, "Fiyatı": 250000}
thisdictionary.pop("Fiyatı")
print(thisdictionary)
Kodun çıktısı
Yukarıda bulunan örnekte “Fiyatı” kriterini silmek istediğimizde sözlüğünadı.pop(silmek istediğimiz kriter) yazabilirsiniz.
Diğer bir yöntem ise del() fonksiyonunu kullanarak silme işleminin gerçekleştirilmesidir.
thisdictionary = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020, "Fiyatı": 250000}
del thisdictionary["Fiyatı"]
print(thisdictionary)
Kodun çıktısı
Yukarıdaki örnekte de “Fiyatı” kriterini silmek istedik. Silerken del sözlükismi[Silinmek istenen kriter] şeklinde yazabilirsiniz.(Silmek istenen kriteri köşeli parantez içerisine almayı unutmayınız.)
Diğer bir yöntem ise clear() fonksiyonun kullanılmasıdır. Clear() fonksiyonun diğer silme fonksiyonlardan farkı sözlüğün içerisinde tüm verileri silmeyi sağlamaktadır.
thisdictionary = { "Marka": "Volkswagen", "Modeli": "Golf","Yılı": 2020, "Fiyatı": 250000}
thisdictionary.clear()
print(thisdictionary)
Kodun çıktısı
Yukarıdaki örnekte sözlük içerisinde bulunan tüm verileri ve açıklamalarını sildiği için sonucu boş küme({}) oluşmuştur.
İç İçe Sözlük İşlemleri
Sözlük birden fazla sözlüğü içerisinde bulundurabilir.
cars={"Car1":{"Brand":"Fiat","Model": "500L"},"Car2":{"Brand":"Toyota","Model": "Corolla"},"Car3":{"Brand":"Volkswagen","Model": "Polo"}}
print(cars)
Kodun çıktısı
Yukarıdaki örnekte olduğu gibi arabaların marka ve modelinin bulunduğu bir sözlük yapılabilir. Arabaların özellikleri ve arabaların sayısı çoğaltılabilir.