You are on page 1of 10

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;

1 """İngilizce Sözlük uygulaması"""


2 kelime = input("İngilizce Kelime girin :")
3  
4 if kelime=="Computer":
5 print("Bilgisayar")
6 elif kelime=="Driver":
7 print("Sürücü")
8 elif kelime=="Memory":
9 print("")
10 elif kelime == "Output":
11 print("Çıktı")
12 elif kelime=="Software":
13 print("Yazılım")
14 elif kelime=="Printer":
15 print("Yazıcı")
16 .
17 .
18 .
19 .
20 .
Muhtemelen bu şekilde bir kod yazmış olacaksınız
Bide aynı uygulamayı Sözlükler ile de yazalım
1 """İngilizce Sözlük uygulaması"""
2 kelime = input("İngilizce Kelime girin :")

4 sozluk ={"Computer":"Bilgisayar","Driver":"Sürücü","Memory":"Hafıza",
5 "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;

1 sozluk ={"Computer":"Bilgisayar",
2 "Driver":"Sürücü",
3 "Memory":"Hafıza",
4 "Output":"Çıktı",
5 "Software":"Yazılım",
6 "Printer":"Yazıcı"}
7  
8 print(sozluk["Computer"])
9  
10 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;
1 sayilar ={"1":"bir","2":"iki","3":"üç","4":"dört","5":"beş"}

3 print(sayilar)

5 {'1': 'bir', '3': 'üç', '2': 'iki', '5': 'beş', '4': 'dört'}

Sözlük Metotları
Hemen sözlük metotlarını sıralayalım;

1 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__',


2 '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
3 '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__',
4 '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
5 '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
6 '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys',
7 'pop', 'popitem', 'setdefault', 'update', 'values']
__X__ özel metotları çıkartırsak

1 ['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;

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

4 print(sozluk.keys())

6 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.

1 sozluk ={"Computer":"Bilgisayar",
2          "Driver":"Sürücü",
3          "Memory":"Hafıza",
4          "Output":"Çıktı",
5          "Software":"Yazılım",
6          "Printer":"Yazıcı"}
7  
8 print(sozluk.values())
9  
10 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

1 sozluk ={"Computer":"Bilgisayar",
2          "Driver":"Sürücü",
3          "Memory":"Hafıza",
4          "Output":"Çıktı",
5          "Software":"Yazılım",
6          "Printer":"Yazıcı"}
7  
8 print(sozluk.items())
9  
1 dict_items([('Output', 'Çıktı'), ('Printer', 'Yazıcı'), ('Computer', 'Bilgisayar'), ('Software', 'Yazılım'), ('Memory', 'Hafıza'),
0 ('Driver', 'Sürücü')])
 
Get Metodu

Bu metodu anlatmadan önce şöyle bir uygulama yapalım;

Python

1 kelime=input("Bir kelime girin :")


2 sozluk ={"Computer":"Bilgisayar",
3          "Driver":"Sürücü",
4          "Memory":"Hafıza",
5          "Output":"Çıktı",
6          "Software":"Yazılım",
7          "Printer":"Yazıcı"}
8  
9 if kelime in sozluk:
10     print(sozluk[kelime])
11 else:
12     print("Aradığınız kelime Sözlükte bulunamadı")
13  
14 Bir kelime girin :Memory
15 Hafıza
16  
17 Bir kelime girin :deneme
18 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

Python

1 kelime=input("Bir kelime girin :")


2 sozluk ={"Computer":"Bilgisayar",
3          "Driver":"Sürücü",
4          "Memory":"Hafıza",
5          "Output":"Çıktı",
6          "Software":"Yazılım",
7          "Printer":"Yazıcı"}
8 print(sozluk.get(kelime,"Aradığınız kelime Sözlük içinde bulunmamaktadır"))
9  
10 Bir kelime girin :Software
11 Yazılım
12 Bir kelime girin :Book
13 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.

1
sozluk ={"Computer":"Bilgisayar",
2
         "Driver":"Sürücü",
3
         "Memory":"Hafıza",
4
         "Output":"Çıktı",
5
         "Software":"Yazılım",
6
         "Printer":"Yazıcı"}
7
 
8
sozluk2= sozluk.copy()
9
print(sozluk2)
1
{'Output': 'Çıktı', 'Driver': 'Sürücü', 'Software': 'Yazılım', 'Computer': 'Bilgisayar', 'Memory': 'Hafıza', 'Printer': 'Yazıcı'}
0
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;

1 sozluk["Hardware"]= "Donanım"
işlemi yaptıktan sonra bide ikinci sözlüğe bakalım

1 print(sozluk2)

3 {'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;

1 sozluk2= sozluk.copy()
2 sozluk["Hardware"]= "Donanım"
3 print(sozluk2)
4 {'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.

1 sozluk ={"Computer":"Bilgisayar",
2 "Driver":"Sürücü",
3 "Memory":"Hafıza",
4 "Output":"Çıktı",
5 "Software":"Yazılım",
6 "Printer":"Yazıcı"}
7  
8 sozluk.clear()
9 print(sozluk)
10 {}
Peki sözlüğü tamamıyla nasıl sileriz diyorsanız hemen göstereyim;
1 del sozluk
2 print(sozluk)

4 Traceback (most recent call last):
5 File "C:/Users/Cahit/Desktop/Mini/dictionary.py", line 7, in <module>
6 print(sozluk)
7 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;

1 sozluk ={"Computer":"Bilgisayar",
2          "Driver":"Sürücü",
3          "Memory":"Hafıza",
4          "Output":"Çıktı",
5          "Software":"Yazılım",
6          "Printer":"Yazıcı"}
7  
8  
9 del sozluk["Computer"]
10 print(sozluk)
11 {'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.

1 sozluk ={"Driver":"Sürücü",
2          "Memory":"Hafıza",
3          "Output":"Çıktı",
4          "Software":"Yazılım",
5          "Printer":"Yazıcı"}
6  
7 sozluk.pop("Driver")
8 print(sozluk)
9  
10 {'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.

1 sozluk ={"Driver":"Sürücü",
2          "Memory":"Hafıza",
3          "Output":"Çıktı",
4          "Software":"Yazılım",
5          "Printer":"Yazıcı"}
6 sozluk.popitem()
7 print(sozluk)
8 {'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 ;

1 sayilar ={"1":"bir","2":"iki","3":"üç","4":"dört","5":"beş"}

3 print(sayilar.setdefault("4"),)

5 dört
aranılan anahtar yok ise;
1 print(sayilar.setdefault("8","sekiz"),)

3 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;

1 liste_1 ={"Ali":70,"Mehmet":50,"Kemal":60,"Mustafa":75}
Biz notlara 10’ar puan eklemek istiyoruz yani yeni hali şu olacak;

1 liste_2 ={"Ali":80,"Mehmet":60,"Kemal":70,"Mustafa":85}
ikinci liste gibi olmasını istiyorsak yapacağımız işlem;

1 liste_1.update(liste_2)
2 print(liste_1)

4 {'Mehmet': 60, 'Kemal': 70, 'Ali': 80, 'Mustafa': 85}
gördüğünüz gibi update metodunun kullanımı da bu şekilde.

You might also like