## 35. Farklı bir tanımlama

Sizce aşağıdaki Reeborg için iyi bir tanımlama mı?
robot: İnsanlar tarafından kontrol edilen ve kendisine verilen görevleri otomatik olarak yerine getiren bir makine, daha çok tekrarlayan işler için kullanılır.

Bir hikaye yazmak istediğiniz zaman, sözlükten bir kelimenin anlamına nasıl bakılacağını bilmek işinize çok yarayacaktır. Python'un da kendine özgü bir sözlüğü vardır ve program yazarken işinize çok yarar.

### Kaç tane yumurta gerekliydi?

Malzeme listesine bakmadan kaç tane yumurtaya ihtiyaç olduğunu hatırlayabilir misiniz? Eğer hatırlayamadıysanız, listenin tamamını yazdırmadan bunu bulabilir misiniz? Listede malzemelerin hangi sırayla yazıldığını hatırlamıyorsanız bu da size zor gelecektir. Python'da bu tür durumlarda sözlükler (dictionaries) kullanılır, aşağıdaki örneği inceleyin:

    >>> malzemeler2 = { 'yumurta' : 4,  # ='den sonra kıvrımlı parantez kullanıldığına dikkat edin
    ...     'şeker': '100 g',
    ...     'kakao': '30 g',
    ...     'çukulata': '250 g'} # burada da kıvrımlı parantez kullanılır.
    >>> print malzemeler2
    {'yumurta': 4, 'çukulata': '250 g', 'kakao': '30 g', 'şeker': '100 g'}

Sözlükteki her bir giriş "anahtar:değer" şeklindedir ve elemanlar birbirlerinden virgül ile ayrılırlar. print ile `malzemeler2` yazdırıldığında sıralamanın, girişteki sıralamadan farklı olduğuna dikkat edin.

Eğer kaç tane yumurtaya ihtiyaç olduğunu bulmak istersek:

    >>> print malzemeler2['yumurta']
    4

Eğer `malzemeler2`'nin içindeki tüm değerleri bulmak istersek:

    >>> for anahtar in malzemeler2:
    ...     print malzemeler2[anahtar]
    ...
    4
    250 g
    30 g
    100 g

Hem anahtarları, hem de değerleri aşağıdaki gibi görüntüleyebiliriz:

    >>> for anahtar in malzemeler2:
    ...     print str(anahtar) + ":" + str(malzemeler2[anahtar])

    yumurta:4
    çukulata:250 g
    kakao:30 g
    şeker:100 g

Burada herhangi bir nesneyi stringe dönüştüren `str()`fonksiyonunu kullandık, böylece yukarıdaki görüntüyü elde ettik.

Olamaz, kremayı eklemeyi yine unuttuk, hadi ekleyelim:

    >>> malzemeler2["krema"] = "Çok miktarda"

Deneyin!

### Her nesne anahtar olamaz

Sözlüklerde herhangi bir nesneyi değer olarak kullanabiliriz, ancak bu durum anahtarlar için farklıdır, anahtarlar yalnızca sabit nesnelerden oluşmalıdır. Bunun ne anlama geldiğini daha sonra açıklayacağım; şimdilik şu ana kadar gördüğümüz nesnelerin içerisinde yalnızca string ve sayıların anahtar olarak kullanabileceğini söyleyebiliriz. Listeler veya diğer sözlükler anahtar olarak kullanılamazlar. Bu nesneleri farklı kombinasyonlarda, anahtar ve değer olarak, kullanarak denemeler yapın ve konuyu daha iyi anlamaya çalışın.

### Küçük test

Sözlükten bir girdinin nasıl silinebileceğini tahmin edebiliyor musunuz? Tahmin edebiliyorsanız, deneyin. Tahmin edemiyorsanız, büyük olasılıkla bir önceki dersi dikkatle çalışmadınız demektir. Geriye dönün ve tekrar okuyun, özellikle bir listeden bir elemanın nasıl silindiğini anlatan kısmı.

Çukulatalı Kek Tarifi. - - Son sıramız