Dictionaries nedir, ne değildir?

Pythonda kullanılan bir veri tipi olan dictionary (sözlük) oldukça kullanışlı bir veri türüdür. Listelerin yetersiz kaldığı yerlerde bu açığı kapatmak için kullanılabilir. Listeleri sıralanmış veriler dizisi olarak düşünürsek sözlükler tam tersine sırasız veriler bütünü olarak düşünülebilir. Sözlüklerin özelliklerini maddeler halinde sıralayacak olursak;

* Sözlüklerde verilere erişim listelerde olduğu gibi indeks numarasıyla değilde verileri tanımlarken belirlediğimiz anahtar kelimelerle (key) sağlanır. Bu da bize verilere erişimde oldukça kolaylık sağlamaktadır.

* Değerler süslü parantezler arasına yazılırlar {}.

* Sözlüklerde listeler gibi otomatik boyutlandırma yapabilirler, yani kapasitesinin dolması gibi bir durum söz konusu değildir.

* Sözlüklere her türlü veri tipinde değer girilebilir (liste, başka bir sözlük, nesne ve diğerleri).

* Listelerde ve stringlerde kullandığımız bazı özellikleri (properties) sözlüklerde kullanamayız. Bunun sebebi sözlüklerin düzensiz yapılar olmasından dolayıdır. Ancak sözlüklerin kendine özel fakrlı özellikleri vardır (bunlara ileride değineceğiz).

Şimdi sözlüklerin kullanımına birkaç örnek verelim:

s1={’yumurta’:5, ’sucuk’:1, ‘ekmek’:2}

Yeni bir sözlük oluşturdurk.

s1[’yumurta’]
5

Anahtar kelimeyle (key) erişim sağladık.

len(s1)
3

Sözlükteki verilerin adedi.

s1.has_key(’sucuk’)
1

s1[’yumurta’] ile aynı işi görüyor.

s1.(keys)
[’yumurta’,’sucuk’,'ekmek’]

Sözlükteki anahtar kelimeleri (keys) listeler.

s1[’sucuk’]=[’acılı’,'acısız’]
s1
{’yumurta’:5, ’sucuk’:[’acılı’,'acısız’], ‘ekmek’:2}

Değer değiştirme.

del s1[’sucuk’]
s1
{’yumurta’:5, ‘ekmek’:2}

Değer silme.

s1[’icecek’]=’meyve suyu’
s1
{’icecek’:'meyve suyu’,'yumurta’:5, ‘ekmek’:2}

Değer ekleme.

Uygulamaya yönelik bir örnek yapalım..

tablo={
‘Python’ : ‘Guido van Rossum’,‘Perl’: ‘Larry Wall’,‘Tcl’: ‘John Ousterhout’ }
dil=’Python’
olusturan=tablo[dil]
olusturan
‘Guido van Rossum’

for lang in tablo.keys: 
    print lang,tablo[lang]
Python Guido van Rossum
Perl Larry Wall
Tcl John Ousterhout

En son kullandığımız komuta dikkat edelim. Normal koşullarda sözlükleri string ve listelerde olduğu gibi for döngüsü içerisinde kullanamazsınız. Ama bunun da bir çözümü var: keys metodu bu durumda işinizi görecektir. Bu metodu parametresiz () şekilde çağırdığınızda size sözlükteki bütün anahtar kelimeleri döndürecektir ve bu anahtar kelimeler üzerinden for döngünüzü çalıştırabilirsiniz.