Merhaba Arkadaşlar,
Mobilhanem.com da Python Dersleri serisinin bu dersinde Dictionary(Sözlük) ve Metotlarını işleyeceğiz umarım sizler için faydalı olur.
Daha önceki derslerde Python da Veri Türleri dersinde Sözlük veri türünün ne olduğunu ve nasıl kullanıldığına değinmiştik eğer o yazıyı okumadıysanız buradan bakmanıza fayda var. Keyifli okumalar;
Sözlükler Nedir?
Sözlükler de Tuple ve List veri türleri gibi farklı veri türleri bulunduran bulundan mutable(değiştirilebilir) veri türü olduğunu ve süslü parantezlerle gösterildiğini söylemiştik.
Fakat sözlükler biraz farklıdır çünkü Sözlükler iki kısımdan oluşur; keys(anahtar) ve value(değer), value kısmı bütün veri türünü içerebilir fakat keys kısmı sadece string ve int tipinde olabilir.
Sözlükler Nasıl Kullanılır
Kullanımını göstermeden önce neden sözlük onu anlatayım; bir İngilizce sözlük yaptığınızı düşünün veri tabanı olmadan nasıl olur her kelime için bir if koşul yazmak zorundasın her kelime işin bir koşul döngüsü buda programı yorar hemen bir örnekle göstereyim;
"""İngilizce Sözlük uygulaması""" kelime = input("İngilizce Kelime girin :") if kelime=="Computer": print("Bilgisayar") elif kelime=="Driver": print("Sürücü") elif kelime=="Memory": print("") elif kelime == "Output": print("Çıktı") elif kelime=="Software": print("Yazılım") elif kelime=="Printer": print("Yazıcı") . . . . .
Muhtemelen bu şekilde bir kod yazmış olacaksınız
Bide aynı uygulamayı Sözlükler ile de yazalım
"""İngilizce Sözlük uygulaması""" kelime = input("İngilizce Kelime girin :") sozluk ={"Computer":"Bilgisayar","Driver":"Sürücü","Memory":"Hafıza", "Output":"Çıktı","Software":"Yazılım","Printer":"Yazıcı"}
Bu şekilde daha düzgün ve okunabilir kod yazmış olacaksınız ayrıca Sözlükler mutable(değiştirilebilir) veri türü olduğu için kolayca ekleme, silme değiştirme vs. işleri yapabiliriz.
Sözlük Ögelerine Erişmek
Sözlükler anahtar değer ilişkisine dayanır her değerin bir anahtar karşılığı vardır. O zaman biz bildiğimiz anahtar ile değere ulaşabiliriz hemen bir örnek verelim;
sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} print(sozluk["Computer"]) Bilgisayar
Burada dikkat etmemiz gereken bir şey var biz sözlüklere erişirken diğer veri türlerinde olduğu gibi köşeli parantezler içinde çağıramıyoruz sebebi ise şu Sözlükler sıralı veri tipleri değiller hemen bir örnek ile size göstereyim;
sayilar ={"1":"bir","2":"iki","3":"üç","4":"dört","5":"beş"} print(sayilar) {'1': 'bir', '3': 'üç', '2': 'iki', '5': 'beş', '4': 'dört'}
Sözlük Metotları
Hemen sözlük metotlarını sıralayalım;
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
__X__ özel metotları çıkartırsak
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Metotlarını bu derste işleyeceğiz.
Keys Metodu
Dersin başında Sözlükleri tanımlarken Sözlüklerin key(anahtar) ve value(değer) olmak üzere oluştuğunu söylemiştik. İşte bu metot Sözlükteki bütün anahtar kelimeleri veriyor hemen bir örnekle göstereyim;
sozluk ={"Computer":"Bilgisayar","Driver":"Sürücü","Memory":"Hafıza", "Output":"Çıktı","Software":"Yazılım","Printer":"Yazıcı"} print(sozluk.keys()) dict_keys(['Printer', 'Driver', 'Computer', 'Software', 'Output', 'Memory'])
Values Metodu
Bu metot da bir sözlük içindeki bütün değerleri veriyor.
sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} print(sozluk.values()) dict_values(['Yazılım', 'Çıktı', 'Bilgisayar', 'Hafıza', 'Sürücü', 'Yazıcı'])
Items Metodu
Bu metot ise hem anahtar hem de değerlerin hepsini veriyor
sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} print(sozluk.items()) dict_items([('Output', 'Çıktı'), ('Printer', 'Yazıcı'), ('Computer', 'Bilgisayar'), ('Software', 'Yazılım'), ('Memory', 'Hafıza'), ('Driver', 'Sürücü')])
Get Metodu
Bu metodu anlatmadan önce şöyle bir uygulama yapalım;
kelime=input("Bir kelime girin :") sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} if kelime in sozluk: print(sozluk[kelime]) else: print("Aradığınız kelime Sözlükte bulunamadı") Bir kelime girin :Memory Hafıza Bir kelime girin :deneme Aradığınız Kelime Sözlükte bulunamadı
Burada aradığımız kelime eğer varsa kelime veriyor eğer yoksa bize aranılan kelimenin olmadığı veren bir program yazdık
İşte get metodu burada if koşul döngüsünü yazmadan aynı işlevi yapmamızı sağlıyor
kelime=input("Bir kelime girin :") sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} print(sozluk.get(kelime,"Aradığınız kelime Sözlük içinde bulunmamaktadır")) Bir kelime girin :Software Yazılım Bir kelime girin :Book Aradığınız kelime Sözlük içinde bulunmamaktadır
Copy Metodu
Bu metot olan bir Sözlüğü kopyalama mızı sağlıyor.
sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} sozluk2= sozluk.copy() print(sozluk2) {'Output': 'Çıktı', 'Driver': 'Sürücü', 'Software': 'Yazılım', 'Computer': 'Bilgisayar', 'Memory': 'Hafıza', 'Printer': 'Yazıcı'}
Bu şekilde kullanıyoruz şimdi siz diyeceksiniz ne gerek var birinci sözlüğü ikinci sözlüğe atarız ama o zaman da şöyle bir sorun var siz birinci sözlükteki değerleri değiştirirseniz eğer ikinci sözlükte değişmiş olur. Ama bizim asıl amacımız birinci sözlüğün kopyasını saklamaktı.
Hemen göstereyim;
sozluk["Hardware"]= "Donanım"
işlemi yaptıktan sonra bide ikinci sözlüğe bakalım
print(sozluk2) {'Memory': 'Hafıza', 'Printer': 'Yazıcı', 'Output': 'Çıktı', 'Software': 'Yazılım', 'Computer': 'Bilgisayar', 'Hardware': 'Donanım', 'Driver': 'Sürücü'}
Gördüğünüz gibi sonradan eklediğimiz “Hardware” üyesi ikinci sözlüğe de eklenmiş oldu.
Bide copy metodu ile yapalım;
sozluk2= sozluk.copy() sozluk["Hardware"]= "Donanım" print(sozluk2) {'Software': 'Yazılım', 'Output': 'Çıktı', 'Printer': 'Yazıcı', 'Computer': 'Bilgisayar', 'Memory': 'Hafıza', 'Driver': 'Sürücü'}
Gördüğünüz gibi sonradan eklediğimiz değişiklikler ikinci sözlüğü etkilemiyor.
Clear Metodu
Adından da anlaşılacağı gibi bu metot temizleme işlevini görüyor ama dikkat etmeniz gereken bir şey var oda bu metot sözlüğü değil sözlüğün içini silmeye yarıyor.
sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} sozluk.clear() print(sozluk) {}
Peki sözlüğü tamamıyla nasıl sileriz diyorsanız hemen göstereyim;
del sozluk print(sozluk) Traceback (most recent call last): File "C:/Users/Cahit/Desktop/Mini/dictionary.py", line 7, in <module> print(sozluk) NameError: name 'sozluk' is not defined
Gördüğünüz gibi sözlüğü yazmaya çalıştığımızda program sözlüğün olmadığını söylüyor.
Ayrıca bu şekilde sözlükteki bir öğeyi silebiliriz;
sozluk ={"Computer":"Bilgisayar", "Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} del sozluk["Computer"] print(sozluk) {'Memory': 'Hafıza', 'Driver': 'Sürücü', 'Output': 'Çıktı', 'Software': 'Yazılım', 'Printer': 'Yazıcı'}
Bu şekilde “Computer” öğesini silmiş olduk.
Pop Metodu
Bu metot anahtar kelime ile tek bir öğeyi silme işlemini yapıyor. Ayrıca silinen öğenin anahtar değerini ekrana basar.
sozluk ={"Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} sozluk.pop("Driver") print(sozluk) {'Memory': 'Hafıza', 'Printer': 'Yazıcı', 'Software': 'Yazılım', 'Output': 'Çıktı'}
Bu şekilde “Driver” öğesini silmiş olduk.
Popitem Metodu
Bu metot ise pop metodu ile aynı işlevi yapar ama bu metot parametre almaz rastgele bir öğeyi siler.
sozluk ={"Driver":"Sürücü", "Memory":"Hafıza", "Output":"Çıktı", "Software":"Yazılım", "Printer":"Yazıcı"} sozluk.popitem() print(sozluk) {'Driver': 'Sürücü', 'Printer': 'Yazıcı', 'Output': 'Çıktı', 'Memory': 'Hafıza'}
Görüldüğü gibi bu metot rastgele olarak “Software” ögesini silmiş oldu.
Setdefault Metodu
Bu metot da get metodu ile aynıdır farkı ise aranılan anahtar yoksa ise siz o anahtara bir değer vererek yazdırabiliyorsunuz.
Aranılan kelime bulunuyorsa ;
sayilar ={"1":"bir","2":"iki","3":"üç","4":"dört","5":"beş"} print(sayilar.setdefault("4"),) dört
aranılan anahtar yok ise;
print(sayilar.setdefault("8","sekiz"),) sekiz
Update Metodu
Bu metot Sözlüğü güncellemenize yarayan metottur. bir örnekle kullanımını göstereyim;
Diyelim ki bir öğrenci listemiz var ve bu öğrencilerin notları var;
liste_1 ={"Ali":70,"Mehmet":50,"Kemal":60,"Mustafa":75}
Biz notlara 10’ar puan eklemek istiyoruz yani yeni hali şu olacak;
liste_2 ={"Ali":80,"Mehmet":60,"Kemal":70,"Mustafa":85}
ikinci liste gibi olmasını istiyorsak yapacağımız işlem;
liste_1.update(liste_2) print(liste_1) {'Mehmet': 60, 'Kemal': 70, 'Ali': 80, 'Mustafa': 85}
gördüğünüz gibi update metodunun kullanımı da bu şekilde.
Mobilhanem.com da Python da Dictionary(Sözlükler) ve Metotları dersinin sonuna geldik bir sonraki yazımızda Python da Set(küme) Fronzset(dondurulmuş küme) ve Metotlarını işleyeceğiz. Eksik yada yanlış gördüğünüz yada anlamadığınız yerler için sayfanın altında yorum bölümünden yada soru-cevap kısmından sorabilirsiniz. Bir sonraki yazıda görüşmek üzere 🙂
Bütün Python derslerine buradan ulaşabilirsiniz
240