Python'da bulunan bir diğer faydalı veri turu de sozluktur. Sozlukler diğer programlama dillerinde ``cağrışımlı bellek'' (associative memory) veya ``cağrışımlı dizi'' (associative array) olarak bilinirler. Sayılarla indislenen sıralardan farklı olarak, sozlukler anahtarlar (key) ile indislenirler. Anahtar değiştirilemeyen turdeki herhangi bir veri turunde olabilir. Sayılar ve dizgeler her zaman anahtar olabilirler. Demetler de sayılar, dizgeler veya demetler icerdikleri surece anahtar olabilirler. Bir demet doğrudan ya da dolaylı olarak değiştirilebilir bir nesne iceriyorsa anahtar olarak kullanılamaz. Listeler anahtar olamazlar, cunku append() ile extend() yontemleri, dilimleme ve indise değer atama ile değiştirilebilirler. Bir sozluk anahtar : değer ciftlerinden oluşur. Bir anahtar sozlukte sadece bir defa bulunabilir. Bir cift cengelli parantez boş bir sozluk yaratır : . Cengelli parantezlerin icine virgulle ayrılmış anahtar : değer ciftleri koymak anahtar ve değer ciftlerine ilk değerlerini verir. Cıktıya da sozlukler aynı şekilde yazılırlar. Sozluklerle ilgili ana işlemler bir değerin bir anahtar ile saklanması ve anahtar verildiğinde değerin bulunmasıdır. del kullanarak bir anahtar : değer ciftini silmek mumkundur. Zaten mevcut olan bir anahtar kullanarak bir değer eklerseniz bu anahtarla bağlantılı eski değer unutulur. Mevcut olmayan bir anahtar ile değer istemek hatalıdır. Sozluk nesnesinin keys() yontemi listedeki butun anahtarların listesini rasgele sıralı olarak geri dondurur (sıralamak isterseniz listenin sort() yonteminden faydalanabilirsiniz). Bir anahtarın sozlukte olup olmadığını gormek icin sozluğun has_key() yontemi kullanılır. İşte sozluk kullanan kucuk bir ornek: >>> tel = >>> tel['guido'] = 4127 >>> tel >>> tel['jack'] 4098 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel >>> tel.keys() ['guido', 'irv', 'jack'] >>> tel.has_key('guido') 1 dict() işlevi anahtar-değer ciftlerinden oluşan demetlerden sozlukler uretir. Ciftlerin bir kalıba uyduğu durumlarda, liste uretecleri ile anahtar-değer ciftleri kısaca ifade edilebilir. >>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) >>> dict([(x, x**2) for x in vec]) # liste ureteci kullanarak
__________________