Site Loader

Merhaba Arkadaşlar,
pythonearth.com da Python Eğitim serisinin bu dersinde Dictionary(Sözlük) ve Metotlarını işleyeceğiz

Sözlük Nedir?

Sözlükler aynı listeler gibi birden çok elemanı bir araya toplayan yapılardır. Tabi listelerden farklı olan tarafı sıralı olmamalarıdır. Listelerin indexleri üzerinde bir sıralama vardır ama bu sözlüklerde mevcut değildir.
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.

Listelerde elemanlar sıfırdan başlayarak tam sayılarla indekslenirken , sözlük elemanlarını anahtarlarla indekslenir. Bu anlamda sözlükler listelerden daha geneldirler.

Tüm Python Derslerine  buradan ulaşabilirsiniz.

Sözlük Oluşturma

Python’da sözlük oluşturmanın dört farklı yolu vardır. Şimdi bir kişinin bilgilerinin saklandığı bir sözlük oluşturalım.

  1. Doğrudan sözlük oluşturma
    kisi={"Adı":"Cem","Soyadı":"Karaca","Mesleği":"Sanatçı"}
    
    print(kisi)
    
    

    Çıktı

    {'Adı': 'Cem', 'Soyadı': 'Karaca', 'Mesleği': 'Sanatçı'}
  2. Boş bir sözlük yarattıktan sonra anahtar ve değerleri tek tek eklemek
    kisi={}
    
    kisi["Adı"]="Cem"
    kisi["Soyadı"]="Karaca"
    kisi["Mesleği"]="Sanatçı"
    print(kisi)

     Çıktı

    {'Adı': 'Cem', 'Soyadı': 'Karaca', 'Mesleği': 'Sanatçı'}

     

  3.  dict fonksiyonunu ile kullanmak:
    kisi=dict(Adı="Cem",Soyadı="Karaca",Mesleği="Sanatçı")
    print(kisi)

    Çıktı

    {'Adı': 'Cem', 'Soyadı': 'Karaca', 'Mesleği': 'Sanatçı'}
  4. dict fonksiyonuna (anahtar, değer) çiftleri dizisi vermek
    kisi=dict([("isim","Cem"),("Soyadı","Karaca"),("Mesleği","Sanatçı")]) 
    print(kisi)

    Çıktı

    {'Adı': 'Cem', 'Soyadı': 'Karaca', 'Mesleği': 'Sanatçı'}

Bu sonuncu yöntem genelde zip fonksiyonu ile beraber de kullanılır.

keys=["Adı","Soyadı","Mesleği"]
values=["Cem","karaca","Sanatçı"]
print((zip(keys,values))

Şöyle bir kullanımda önünüze muhtemelen böyle bir çıktı gelecektir.

Çıktı

<zip object at 0x0000024014755508>

Evet arkadaşlar burada tabi ki zip fonksiyonunu dict olmadan ekrana yazdırdığımız için böyle bir sonuçla karşılaştık. Burada düzeltmemiz gereken nokta print(zip(keys,values) yerine print(dict(zip(keys,values))) ve ekranda artık bir çıktı göreceksiniz.

Şimdi bir İngilizce kelime uygulaması yapalım.

"""İ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ı")

Aslında böylede yapılabilir ama çok fazla kod ve  karışık bir kod parçacığı oldu şimdiden tabi siz bunu büyük bir proje olarak düşünün çok fazla meşakkatli olur. Bu yüzden sözlüklerle yapmaya çalışalım aynı örneği.

"""İ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ı"}

Evet gördüğünüz gibi dictionary(sözlük) kullanarak daha kısa ve sade bir kod yazdık.

Sözlük Metodları

Bir sözlük nesnesine ait metodları dir() fonksiyonuyla görebiliriz.

dir(dict)

Çıktı

['__class__',
 '__contains__',
 '__delattr__',
 '__delitem__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__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']

Başında ve sonunda altçizgi olan metotlar nesne içi kullanım içindir.

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'}

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.

['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

Bu derste “_özel_”bu şeklde gözüken metodları çıkardığımızda geriye kalan metodlarımız bunlar kalıyor.Bu metodları kullanacağız.

Keys Metodu

Bu metot sözlükteki bütün anahtar değerleri getiriyor. Küçük bir örnekle aktarmaya çalışalım.

sozluk ={"Computer":"Bilgisayar","Driver":"Sürücü","Memory":"Hafıza",
"Output":"Çıktı","Software":"Yazılım","Printer":"Yazıcı"}

print(sozluk.keys())

Values Metodu

Bu metod bir sözlük içerisindeki 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ğerleri veriyor.

sozluk ={"Computer":"Bilgisayar",
         "Driver":"Sürücü",
         "Memory":"Hafıza",
         "Output":"Çıktı",
         "Software":"Yazılım",
         "Printer":"Yazıcı"}

print(sozluk.items())

Çıktı

dict_items([('Computer', 'Bilgisayar'), ('Driver', 'Sürücü'), ('Memory', 'Hafıza'), ('Output', 'Çıktı'), ('Software', 'Yazılım'), ('Printer', 'Yazıcı')])

PopItem Metodu

Bu metot sözlük içerisine en son eklenen öğeyi kaldırır.(Dikkat)3.7’den önceki sürümlerde rastgele kaldırma işleri yapıyor.

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 software silmiş oldu.

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 durumda “Driver silinmiş 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

Get Metodu

Küçük 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 var olan bir Sözlüğü kopyalama mızı sağlıyor.

0

Post Author: Sadık Ortaoglan

computer enginering

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir