HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Dictionary nedir?
Bir dictionary'i aslında bir liste gibi düşünebiliriz ama dictionary'ler listelerden biraz daha genel amaçlar için kullanılır. Detaylandıracak olursak; Dictionary'de
- indeksler integer(sayı) olmak zorunda değildir, indeksler herhangi bir değişken tipine sahip olabilir.
- indekslerden key(anahtar) olarak bahsedilir. key lerin tuttuğu değerlerden ise value(değer) olarak bahsedebiliriz.
- Her key bir değer içerir ve bir dictionary'de aynı key den birden fazla olamaz.
Bir dictionary tanımlamak oldukça basittir, aşağıdaki örnekle inceleyelim.
Kod:
# Bir dictionary tanımlamanın iki yolu vardır; 1. si dict anahtar sözcüğünü kullanmaktır.
ilk_dict = dict()
# 2. si ise sadece süslü parantez açıp kapamaktır.
ikinci_dict = { }
# Her ikisini de print ettiğimizde sonucun aynı olduğunu göreceğiz.
print ilk_dict
print ikinci_dict
# Çıktı
{ }
{ }
Dictionaries'te, listelerde olduğu gibi veri eklemek için herhangi bir fonksiyon kullanmak zorunda değiliz(insert,append). Köşeli parantezleri kullanarak rahatça veri ekleyebiliriz. İşlemin nasıl yapıldığını aşağıdaki örneğimizde inceleyelim.
Kod:
ilk_dict = dict() # yeni bir dict oluşturdum
ilk_dict["bir"] = 1 # "bir" key'ine sahip olan indeksime 1 değerini atadım.
print ilk_dict # yazdırma işlemini yaptım.
# Çıktı
# {'bir': 1}
Yukarıdaki örnekte oluşturduğumuz ilk_dict adlı dictionary'mize birkaç veri daha ekleyerek, ekrana yazdırma işlemini yapalım.
Kod:
ilk_dict = dict()
ilk_dict["bir"] = 1
ilk_dict["iki"] = 2
ilk_dict["uc"] = 3
print ilk_dict
# Çıktı
# {'iki': 2, 'bir': 1, 'uc': 3}
Yukarıda da gördüğümüz gibi, sıralama işlemi herhangi bir düzene göre yapılmamaktadır.
len Kullanımı
Aynı listelerde olduğu gibi dictionaries'te de len fonksiyonunu kullanabiliriz. len fonksiyonu bize dictionaries'in içerdiği eleman sayısını indeksleri baz alarak vermektedir.
Kod:
ilk_dict = dict()
ilk_dict["bir"] = 1
ilk_dict["iki"] = 2
ilk_dict["uc"] = 3
print len(ilk_dict)
# Çıktı
# 3
Python, dictionaries'deki herhangi bir değeri rahatlıkla bir değişkene atayabilmemiz için biz geliştiricilere get fonksiyonunu sunmaktadır. get fonksiyonu return bir fonksiyon olup, aldığı key değerinin karşılığını geri döndürmektedir. 2 parametre alan bir fonksiyon olan get fonksiyonu, ilk parametre olarak key değerini, ikinci parametre olarak ise başlangıç değeri ni alır. Eğer fonksiyona gönderdiğiniz bir key dictionary'de yer almıyorsa, get fonksiyonu geriye başlangıç değerini döndürmektedir. Örnekle inceleyelim.
Kod:
# Her iki durum icin de baslangic degerini 0 olarak belirledik.
print ilk_dict.get("iki",0)
print ilk_dict.get("bes",0)
# Çıktı
# 2
# 0
Histogram, sayaç dizilerine verilen addır. Dictionary'ler üzerinden histogram oluşturmak istersek, basitçe bir string(metinsel) veri üzerinden inceleme yapabiliriz. Bir metinde hangi harften kaç tane olduğunun dictionary'sini oluşturan bir fonksiyon yazalım.
Kod:
def histogram(str):
hist_dict = {}
for k in str: # k = karakter
if k in hist_dict:
hist_dict[k] += 1
else:
hist_dict[k] = 1
return hist_dict
print histogram("caylak")
# Çıktı
# {'a': 2, 'y': 1, 'c': 1, 'l': 1, 'k': 1}
Dictionary'den veri silme
- Pop kullanımı
Gelin hep beraber yukarıda oluşturduğumuz hist_dict dictionary'sinden key'i(anahtarı) 'a' olan veriyi sildirip bir değişkene alalım.
Kod:
deger = hist_dict.pop('a')
print deger
# 2
- Del kullanımı
del hist_dict['c']
print hist_dict
# {'a': 2, 'y': 1, 'l': 1, 'k': 1}
ÖRNEK 1
Bir tane dictionary ve bir tane numarayı parametre olarak alıp, dictionary verilerinde o numarayı arayan; eğer bulursa True, bulamazsa False döndüren bir fonksiyon yazalım.
Kod:
def numara_bul(dict,numara):
for i in dict.values(): # Sırasıyla dictionary değerlerini döndürüyoruz.
if i==numara or i==str(numara): # gelen değeri numaramız ile kıyaslıyoruz.
return True
return False
Nested dictionary, bir dictionary'nin içerisinde veri olarak bir veya birden fazla dictionary barındırmasına denir. Örnek vermek istersek; bir üniversitedeki öğrencilerin verilerini dictionary'de tutmak istediğimizi varsayalım. Her öğrencinin adı, soyadı, 2 vize ve 1 sınav notu olmak üzere toplam 5 farklı veriyi barındıracağımız dictionary'i düşünelim.
Kod:
dictionary = { 'adi': 'Caylak', 'soyadi': 'Yazilimci', 'vize1': 70, 'vize2': 60, 'final': 100}
Kod:
ogrenciler = { '123123123' : {'adi': 'Caylak', 'soyadi': 'Yazilimci', 'vize1': 70, 'vize2': 60, 'final': 100}, '456456456': { 'adi': 'Ahmet', 'soyadi': 'Mehmet', 'vize1': 55, 'vize2': 50, 'final': 70}}
.Herhangi bir veriye nested dictionary'lerde nasıl erişilir?
ogrenciler nested dictionary'miz üzerinden id'sini bildiğimiz bir öğrencinin final notunu almak istediğimizi düşünelim.
Kod:
# ogrenciler[id][deger] çağırma işlemimizin temel yapısı bu şekildedir. Ne kadar fazla dictionary'miz varsa köşeli parantez sayısı aynı oranda fazla olacaktır.
ogrenciler['123123123']['final'] # idsini bildiğimiz 123123123 nolu öğrencinin final notuna eriştik.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
Altın Konu
Python ile YAML Ayrıştırma
- Cevaplar
- 1
- Görüntüleme
- 39
- Cevaplar
- 2
- Görüntüleme
- 491
- Cevaplar
- 2
- Görüntüleme
- 295
- Cevaplar
- 2
- Görüntüleme
- 408
- Cevaplar
- 2
- Görüntüleme
- 305
