Python — Dictionary

5 min readOct 30, 2022

Merhaba, SistersLab’in Toplum Gönüllüleri Vakfı (https://www.tog.org.tr/en/) tarafından desteklenen Women in Tech Academy proje katılımcılarından biriyim.

Proje, 20–28 yaş aralığında beyanı kadın olan bireyleri 3 ay boyunca yazılım eğitimi ve destekleyici eğitimlerle güçlendirerek sektörde iş gücüne katılımını artırmayı hedefliyor.

Projeyle ilgili detaylı bilgiye bu bağlantıdan ulaşabilirsiniz: https://sisterslab.co/women-in-tech-academy/

Merhabalar, hatırlarsanız önceki yazılamızda list, tuple ve set konularını anlatmıştık.

Artık veri yapılarının son konusuna gelmiş bulunmaktayız. Konumuz dictionary !!

Dictionary’lerin Özellikleri

Veri tiplerimizin sonuncusu olan dictionary, verileri key-value şeklinde saklamamızı sağlayan bir yapıdır.

Kullanımı key : value şeklindedir.

1.Dictionary’deki (kısaca dict.) değerlere key üzerinden erişim sağlarız.

2. Dictionary’ler süslü parantez {} içerisinde tanımlanır. Ve key-value çifti virgüllerle ayrılır.

3. Dictionary’ler diğer veri yapılarında olduğu gibi farklı veri tipleri içerebilir.

Alt alta ya da yan yana yazım mümkündür. Yan yana daha karşmaşık görüneceğinden alt alta yazmak tercih edilebilir.

4. Dictionary’lere index ile erişemeyiz. Dict.’ler unordered yani sırası olmayan yapılardır.

5. Dictionary değiştirilebilir yani mutable yapıdadır. Eleman ekleyip çıkarılabilir, değeri değiştirilebilir.

6. Key değerleri tek olmalıdır, ama taşıdıkları değerler dublicate olabilir. Normal sözlük gibi düşünebiliriz. Hız ve sürat kelimeleri sözlükte iki tane olamaz ama ikisinin karşılığında aynı şey yazabilir :)

Bu şekilde bir value, liste içerisinde yer alacak şekilde birden fazla değer tutulabilir.

  • Boş bir dictionary oluşturmaya set’ler konusunda biraz bahsetmiştik. Boş dictionary oluşturmak için, {} işareti koymamız yeterlidir.
  • Bir yapının set mi yoksa dictionary mi olduğunun karışması durumunda, her zaman başvurduğumuz type() metotunu kullanabiliriz.
  • Bir sözlüğün uzunluğunu da bulabiliriz. Uzunluk tek tek key ve value değerleri ile oluşmaz. Her bir key-value çifti bir adet eleman sayılır.

Dictionary Elemanlarına Erişim

Dictionary’lerin elemanlarına key değeri üzerinden erişim sağlayabileceğimizden bahsetmiştik. Bu key değerlerine:

  • [ ] içerisinde key değeri vererek erişebiliriz.
  • get() metotu ile erişebiliriz.

Burada colours adı altında bir dictionary oluşturduk ve bu dictionary içerisinde key değeri olarak yer alan “pink” değerini colours[“pink”] şeklinde çağırarak value değerine erişim sağladık.

Burada da get() metotu ile value değerine erişim sağladık. Key değeri kullanıp, colours.get(“blue”) diyerek mavi value değerine erişim sağladık.

Bu kullanımların yanı sıra aşağıda yer alan kullanımlar da mevcuttur:

  • Belirli bir dict içerisindeki tüm key değerlerine erişmek için dict_adı.keys(),
  • Belirli bir dict içerisindeki tüm value değerlerine erişmek için dict_adı.values(),
  • Belirli bir dict içerisindeki tüm key-value çiftlerine erişmek için ise dict_adı.items()

Dictionary’lere Döngü ile Erişim

Dictionary’lere döngü ile erişmek mümkündür.

Tek tek key değerlerine erişilebileceği gibi, value değerlerine ve key-value çiftlerine de erişmek mümkündür.

Bir örnekle açıklamak gerekirse:

Dictionary’e Eleman Ekleme ve Silme

Dictionary’ler özellikler kısmında değindiğimiz gibi mutable yani değiştirilebilir yapılardı. Haydi kullanılan metotlara bir göz atalım.

Dictionary’de Eleman Ekleme

  • key-value atama işlemi ile — eğer key yoksa yeni atama olarak ekleme yapar, varsa value değerini değiştirir.

Burada listemize key değeri 2017 ve value değeri Coco olan bir eleman eklemek için işlem yaptık. 2017 key değeri movies dictionary’si içerisinde yer almadığından dictionay’nin en sonuna yeni eleman olarak eklendi. Fakat eğer dictionary içerisinde 2017 key değeri bulunmuş olsaydı, o zaman değeri değişecekti.

  • update() metotu ile — biden fazla değişiklik yapabiliyoruz. Eğer key varsa günceller, yoksa ekler

Bu örnekte görüldüğü gibi dictionary’e iki adet eleman eklemeye çalıştık. Bu elemanlardan bir tanesinin key değeri dict içerisinde yer almıyordu, bu sebeple direkt dict’in sonuna ekledi. Fakat 2001 key değeri halihazırda dict içerisinde yer aldığından ve biz yeni bir atama yapmaya çalıştığımızdan ekleme yaomadı sadece value değerini değiştirdi.

Dictionary’den Eleman Silme

  • del key : Sadece mevcuttaki key değerini siliyor. (key-value çiftini)
  • clear() : Tüm elemanları siliyor. Boş dict kalıyor
  • del dict_name : Sözlük adı verirsek direkt sözlüğü siler, eğer key değeri verirsek sadece o key-value çiftini siler.

Tamamen sildiğimiz için dictionary’i çağırdığımızda hata aldık.

  • popitem() : Dict’e eklenen son eklenen ögeyi siler.
  • pop(key) : Verilen key değerini silmek için kullanıyoruz.

Bir Anahtarın Varlığını Kontrol Etme

Bir key değerinin dict içerisinde olup olmadığını kontrol etmek için in ve not in anahtar kelimelerini kullanıyoruz.

İki Dictionary’i Birleştirme

Dictionary’leri birleştirmek için iki adet metot kullanılmaktadır:

  • update() metotu ile birleştirme

Update metotundan set’ler konusunu işlerken de bahsetmiştik. update() bir yapının içerisini güncellememizi sağlıyordu. Bu örnekte cities’e cities2 elemanlarını eklemiş ve bu şekilde güncellemiş olduk.

  • ** ile birleştirme

Dictionary’de Kopyalama İşlemleri

Diğer veri yapılarında olduğu gibi dict’leri de kopyalayabiliyoruz. Dictionary’lerde kopyalama için kullanılan metotlar:

  • copy()

Diğer veri yapılarında olduğu gibi dictionary’de de copy metotu kullanıldığında ayrı bir dictionary oluşturmuş oluyoruz. Yani bir tanesinde yapılan değişiklik diğerini etkilemiyor.

  • = operatörü

Yine aynı şekilde diğer veri yapıları gibi = operatörü ile kopyalama işlemi yapıldığında bir dictionary’de yapılan değişiklik diğerini de etkileyecektir.

  • dict()

dict() metotu da copy() metotu gibi ayrı bir dictionary oluşturdu, yani yapılan değişiklikler birbirini etkilemeyecek.

İç İçe Dictionary’ler

Dict’ler iç içe bulunabilirler.

Bir örnekle açıklamak gerekirse:

Burada “adres” key değerinin içerisinde bir dict yapısı daha vardır ve içerisinde başka key-value çiftleri yer almaktadır.

İç içe yer alan dictionary’lere iç iç köşeli parantez kullanarak ulaşabiliriz. Örneğimizde görüldüğü gibi önce ilk key değerine ulaşıp ardından ulaşmak istediğimiz value değerinin key değerini yazmamız gerekiyor.

Dictionary’lerde Sıralama

Dictionary’lerde sıralama yapmamız mümkündür.

Burada dikkat edilmesi gereken sıralama yaptığımız verilerin tipinin aynı olmasıdır.

Tek tek key değerlerini ve value değerlerinin sıralamasını aynı veri tipinde olması şartıyla yapabiliyoruz. Int değerler büyükten küçüğe ve string değerler de alfabetik sıraya göre sıralanmaktadır.

item() sıralaması yaptığımızda ise key değerlerine göre sıralama yapılacaktır.

Python — Dictionary konumuzun sonuna geldik.

Böylece Python veri yapıları konusunu tamamen bitirmiş olduk :)

Bir sonraki yazmızda görüşmek üzere !!

--

--

İrem Sağıroğlu
İrem Sağıroğlu

No responses yet