#Python: Python Dersleri 19: Sözlük Fonksiyonları
doviz_kurlari={
"1.01.2022":{"USD":13.44,"EUR":15.14},
"2.01.2022":{"USD":13.44,"EUR":15.14},
"3.01.2022":{"USD":13.09,"EUR":14.79},
"4.01.2022":{"USD":13.37,"EUR":15.03},
"5.01.2022":{"USD":13.49,"EUR":15.22},
"6.01.2022":{"USD":13.73,"EUR":15.49},
"7.01.2022":{"USD":13.87,"EUR":15.65},
"8.01.2022":{"USD":13.87,"EUR":15.65},
"9.01.2022":{"USD":13.87,"EUR":15.65},
"10.01.2022":{"USD":13.87,"EUR":15.63},
"11.01.2022":{"USD":13.84,"EUR":15.63},
"12.01.2022":{"USD":13.80,"EUR":15.70},
"13.01.2022":{"USD":13.60,"EUR":15.56},
"14.01.2022":{"USD":13.53,"EUR":15.44},
"15.01.2022":{"USD":13.53,"EUR":15.44},
"16.01.2022":{"USD":13.53,"EUR":15.44},
"17.01.2022":{"USD":13.44,"EUR":15.28},
"18.01.2022":{"USD":13.58,"EUR":15.41},
"19.01.2022":{"USD":13.55,"EUR":15.35},
"20.01.2022":{"USD":13.37,"EUR":15.16},
"21.01.2022":{"USD":13.40,"EUR":15.18},
"22.01.2022":{"USD":13.40,"EUR":15.18},
"23.01.2022":{"USD":13.40,"EUR":15.18},
"24.01.2022":{"USD":13.41,"EUR":15.13},
"25.01.2022":{"USD":13.52,"EUR":15.22},
"26.01.2022":{"USD":13.55,"EUR":15.26},
"27.01.2022":{"USD":13.61,"EUR":15.17},
"28.01.2022":{"USD":13.57,"EUR":15.13},
"29.01.2022":{"USD":13.57,"EUR":15.13},
"30.01.2022":{"USD":13.57,"EUR":15.13},
"31.01.2022":{"USD":13.40,"EUR":14.98},
"1.02.2022":{"USD":13.38,"EUR":15.06},
"2.02.2022":{"USD":13.56,"EUR":15.31},
"3.02.2022":{"USD":13.54,"EUR":15.39},
"4.02.2022":{"USD":13.53,"EUR":15.46},
"5.02.2022":{"USD":13.53,"EUR":15.46},
"6.02.2022":{"USD":13.53,"EUR":15.46},
"7.02.2022":{"USD":13.56,"EUR":15.48},
"8.02.2022":{"USD":13.63,"EUR":15.54}
}
#Herhangi bir sözlüğü listeye çevirmek isterseniz LIST fonksiyonunu kullanabilirsiniz. Bu fonksiyon ilgili sözlükteki anahtarları bir listeye atar.
print(list(doviz_kurlari))
#List fonksiyonu daha önce hatırlanırsa normal bir yazının harflerini listeye çeviriyordu.
print(list("selam"))
print(doviz_kurlari.keys())#Bu komut da aynı şekilde anahtarları bir listeye atar. Fakat kullanışlı değildir.
#Tüm değerleri görmek için aşağıdaki komut kullanılabilir.
print(doviz_kurlari.values())
#Değerleri aşağıdaki gibi de gösterebilirsiniz:
for anahtar in doviz_kurlari:
print(anahtar,"tarihindeki döviz kurları:",doviz_kurlari[anahtar])
#Bu işlemi aşağıdaki örnekte daha da detaylandırabiliriz:
for anahtar in doviz_kurlari:
print(anahtar,"tarihindeki döviz kurları: Dolar kuru",doviz_kurlari[anahtar]["USD"],"TL, Euro kuru",doviz_kurlari[anahtar]["EUR"],"TL")
#Hem anahtarları ve hem de değerleri bir arada gösteren ITEMS özelliği vardır.
print(doviz_kurlari.items())#Buradaki items() özelliği için iki sonraki örnek önemlidir. Zira bu işlem ileride çok kez karşımıza çıkacaktır.
#print(doviz_kurlari) yazıldığında da benzer bir sonuç üretir.
#Peki “values()” metodu ne işimize yarar? Aşağıdaki örneği inceleyelim:
calisan_listesi={"İhsan Akkuş":["Yönetim",11950,"31.08.1977"],"Sabahattin Bor":["Muhasebe",13610,"31.05.1979"],"Nuray Ergin":["Üretim",10100,"26.06.1982"],"Melin Akaya":["Bilgi İşlem",12160,"19.06.1980"],"Yusuf Zeytin":["Üretim",12850,"28.03.1978"],"Mustafa Karataş":["Yönetim",11170,"11.07.1980"],"Reşat Hilmi Erdem":["Bilgi İşlem",10930,"9.05.1979"],"Güliz Rana Tellioğlu":["Muhasebe",14950,"1.10.1978"],"Emrullah Budak":["Muhasebe",14010,"27.02.1981"],"Ahmet Yaşar":["Bilgi İşlem",11380,"30.04.1978"],"Ayşe Yüksel":["Finans",10640,"3.02.1982"],"Benan İlayda Tellioğlu":["Bilgi İşlem",13790,"22.05.1978"],"Cihad Yıldız":["Bilgi İşlem",11370,"23.11.1979"],}
#Burada mesela Muhasebe çalışanlarını bulmak istiyorsak:
toplam=0
for eleman in calisan_listesi.values():
if eleman[0]=="Muhasebe":
toplam+=1
print("Muhasebede toplam",toplam,"kişi çalışmaktadır.")
#Bir de bu kişilerin kimler olduğunu bulalım:
for anahtar, deger in calisan_listesi.items():
if deger[0]=="Muhasebe":
print(anahtar)
#Yukarıdaki örneğe dikkat edin. Zira bir çok kez bu kurgu ilerleyen aşamalarda karşımıza çıkacaktır. “for anahtar, deger in calisan_listesi.items()” kalıbı çok önemlidir. calisan_listesi.items() kodu bize anahtar ve değeri verirken doğal olarak önüne yazılan anahtar, deger şeklindeki ifadelere atama yapacaktır.
#Ayrıca calisan_listesi.items() ifadesinin sonucu dict_items([('İhsan Akkuş', ['Yönetim', 11950, '31.08.1977']), ('Sabahattin Bor', ['Muhasebe', 13610, '31.05.1979'])… şeklinde bir ifade olup görüleceği gibi sonucun türü TUPLE olmaktadır. Zira sonuçlar incelendiğinde elemanlar parantez içinde gösterilmektedir. Sonuç TUPLE olduğu için anahtar, deger şeklindeki bir yaklaşım işe yaradı.
#Sözlüklerin bazı elemanları silinmek istendiğinde DEL fonksiyonunun yanında POP() özelliği de kullanılabilir. Listelerden farklı olarak POP() özelliğinde parantez içerisinde anahtar bulunmak zorundadır. Parantez boş bırakılamaz. Yoksa hata verir.
doviz_kurlari.pop("1.01.2022")
print(doviz_kurlari)
#Eğer ilgili anahtarda eleman yoksa bu durumda hata verir. Hata vermemesi için IF komutu kullanılabilir.
if "3.03.2023" in doviz_kurlari:
doviz_kurlari.pop("3.03.2023")
print(doviz_kurlari)
#Silmenin bir yolu da POPITEM özelliğidir. POP ile benzer şekilde çalışır. Tek farkı POPITEM'da parantez içi boş bırakılır. Son elemanı siler. Günlük hayatta ihtiyacınız olma olasılığı düşüktür.
doviz_kurlari.popitem()
print(doviz_kurlari)
#Dizilerde bazı elemanları değiştirip diğerlerine dokunmamak istersek bu durumda aşağıdaki gibi UPDATE özelliği kullanılır:
doviz_kurlari.update({"7.02.2022":{"USD":111,"EUR":11111}})
print(doviz_kurlari)
#Bunu aynı zamanda şu şekilde de yapabiliriz:
doviz_kurlari["7.02.2022"]={"USD":222222,"EUR":222222}
print(doviz_kurlari)
#Yeni bir eleman eklemek için SETDEFAULT kullanılabilir:
doviz_kurlari.setdefault("5.5.2023",{"USD":1,"EUR":2})#Yazım şekline dikkat edin. Anahtar ve değer arasında virgül var. : ifadesi yok.
#Yukarıdaki işlem aynı zamanda daha önce gördüğümüz şu şekilde de yapılabilir:
doviz_kurlari["6.5.2023"]={"USD":1,"EUR":2}
print(doviz_kurlari)
#Dizilerin anahtarlar baz alınarak sıralanması için aşağıdaki işlem uygulanabilir:
print(sorted(doviz_kurlari))#Burada anahtarlar baz alınarak harf sırasına göre dizildi. Tarihler yazı olarak tanıtıldığı için onları yazı olarak algıladı.
#İlgili sözlüğü tamamen boşaltmak için CLEAR kullanılır. DEL kullanılırsa sözlüğü tamamen yok eder, CLEAR ise içeriğini temizler.
#del doviz_kurlari #gibi...
doviz_kurlari.clear()
print(doviz_kurlari)
#########################################################################
#Aşağıdaki örnekte sayılar ve kareleri var.
kareler={}#Öncelikle boş bir sözlük oluşturduk.
for i in range(1,101):
kareler[i]=i**2
print(kareler)
#Sonuçları alt alta yazdırmak için:
for anahtar in kareler:
print(anahtar,"sayısının karesi",kareler[anahtar])
#Sözlüklerde TYPE fonksiyonu <class 'dict'> sonucunu üretir.
print(type(kareler))
Python: Python Dersleri 19: Sözlük Fonksiyonları
Kodu Kopyala
TÜM PYTHON KODLARI
Youtube Kanalımız
Aşağıdaki makrolar işinize yarayabilir.
Aşağıdaki makrolar işinize yarayabilir.