Python dictionary bir takım verileri saklamaya yarayan ilişkisel bir veri yapısıdır . İlişkiler anahtar ve değerler şeklindedir . Veriler {} içerisinde : ile ayrılarak {‘key1Name’:’value1′,’key2Name’:’value2′} şeklinde tutulur .Her anahtara karşılık bir değer vardır. Anahtarlar arasında aynı isme sahip bir anahtar varsa sondaki anahtar için işlem yapılır .
Hangi durumlarda dictionary kullanabiliriz ?
Python programlama dilinde diğer dillerde olduğu gibi switch-case yapısı yoktur . Dictionary yapısını kullanarak python için kendi switch-case yapısını oluşturabiliriz .
dict = {} #İstenirse boş şekilde ilk ataması yapılabilir . dict['bir'] = "Bu \"bir\" anahtarına karşı gelen değerdir ." #yeni bir anahtar ve değer atama dict[2] = "Bu \"2\" anahtarına karşı gelen değerdir ." #yeni bir anahtar ve değer atama isim = {'isim': 'Mehmet','soyisim':'Yılmaz', 'yas': 24} print (dict['bir'] ) # dict adlı sözlüğün "bir" key'li value'sini ekrana basar print (dict[2]) # dict adlı sözlüğün "2" key'li value'sini ekrana basar print (isim) # isim adlı sözlüğün tüm değerlerini ekrana basar print (isim.keys()) #isim adlı sözlüğün tüm key'lerini ekrana basar print (isim.values()) # isim adlı sözlüğün tüm value'lerini ekrana basar
Ekran Çıktısı :
Bu "bir" anahtarına karşı gelen değerdir . Bu "2" anahtarına karşı gelen değerdir . {'isim': 'Mehmet', 'soyisim': 'Yılmaz', 'yas': 24} dict_keys(['isim', 'soyisim', 'yas']) dict_values(['Mehmet', 'Yılmaz', 24])
Dictionary kullanırken iki aynı anahtar kullanırsak ne olur ?
Bu durumda python yorumlayıcımız dictionary içerisinde tanımladığımız son anahtara karşılık gelen değer için işlem yapacaktır .
isim = {'isim': 'Mehmet','soyisim':'Yılmaz', 'yas': 24,'isim':'ahmet'} print (isim) # isim adlı sözlüğün tüm değerlerini ekrana basar print (isim.keys()) #isim adlı sözlüğün tüm key'lerini ekrana basar print (isim.values()) # isim adlı sözlüğün tüm value'lerini ekrana basar
Ekran Çıktısı :
{'isim': 'ahmet', 'soyisim': 'Yılmaz', 'yas': 24} dict_keys(['isim', 'soyisim', 'yas']) dict_values(['ahmet', 'Yılmaz', 24])