
Python Sözlüklerin Fonksiyonları
Sözlük Özellikleri
Sözlüklerin tıpkı liste ve cümleler gibi birçok işlev özelliği vardır. Bu özellikler sözlüklerin kullanımını kolaylaştırırlar. Birçok özellikten sadece çok kullananları anlatmaya çalişicağız. Python 3’ten önceki sürümlerde, sözlük işlevleri genelde statik listeler döndürmektedir. Ancak bu bellek kullanımını artırdığından, artık dinamik listeler döndürmektedirler. Dinamik listeler normal listeler gibi bir fonksiyona girdi olarak verilebilir veya üzerinde iterasyon yapılabilir.
Sözlüklerde IN() Fonksiyonu Kullanımı
Bir sözlükte olmayan bir anahtara ait değeri almak istediğimizde hata ile karşılaşabiliriz :
1 2 3 4 5 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk['Nereli']) |
Nereli parametresi tanımlı olmadığı için dolasıyla hata verecektir :
1 2 |
print(sozluk['Nereli']) KeyError: 'Nereli' |
Böyle bir durumla karşılaşmamak için,öncelikle anahtarın sözlükle olup olmadığına bakılmalıdır. Bu olayı in() fonksiyonu ile yapabiliriz :
1 2 3 4 5 6 7 8 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } if 'Ad' in sozluk: print(sozluk['Ad']) if 'Nereli' in sozluk: print(sozluk['Nereli']) |
ÇIKTI :
1 |
>>> Ali |
Şeklinde olacaktır çünkü sadece ‘Ad’ verisi tanımlıdır.
Sözlüklerde Keys() Fonksiyonu Kullanımı
Sözlüklerin anahtarlarını bir liste olarak keys() işlevi ile alabiliriz.
1 2 3 4 5 6 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.keys()) |
ÇIKTI :
1 |
>>> dict_keys(['Soyad', 'Ad']) |
Burada görüldüğü gibi bir dinamik liste oluşturulmuştur. Bu normal dinamik liste gibi iterasyon yapılabilir.
1 2 3 4 5 6 7 8 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } oku = sozluk.keys() # sozluk degerlerini okuduk. for verileri_al in oku: print(verileri_al) |
ÇIKTI :
1 2 |
Ad Soyad |
sorted() fonksiyonu ile anahtarları sırayabiliriz :
1 2 3 4 5 6 7 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } oku = sozluk.keys() # sozluk degerlerini okuduk. print(sorted(oku)) |
ÇIKTI :
1 |
>>> ['Ad', 'Soyad'] |
Sözlüklerde Values() Fonksiyonu Kullanımı
Values() fonksiyonu Keys() fonksiyonun tersine sözlüktedeki anahtarlara ait değerleri dinamik liste olarak verir :
1 2 3 4 5 6 7 8 9 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.values()) ÇIKTI : >>> dict_values(['Ali', 'Yaman']) |
Sözlüklerde Items() Fonksiyonu Kullanımı
Bir sözlüğün elemanlarını items() fonksiyonu ile elde eledebiliriz. Bu bize dinamik bir liste döndürür, Listenin elemanları (Anahtar-Değer) şeklinde bir demettir.(Tüp)
1 2 3 4 5 6 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.items()) |
ÇIKTI :
1 |
>>> dict_items([('Ad', 'Ali'), ('Soyad', 'Yaman')]) |
Bu dinamik sözlük çıktı üzerinde iterasyon yapılabilir :
1 2 3 4 5 6 7 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } oku = sozluk.items() for verileri_cek in oku: print(verileri_cek[0],':',verileri_cek[1]) |
ÇIKTI :
1 2 |
>>> Soyad : Yaman >>> Ad : Ali |
Sözlüklerde Get() Fonksiyonu Kullanımı
Bir sözlükte olmayan bir anahtara ait değeri almak istediğimizde hata ile karşılaşıyorduk, bundan kurtulmak için in() fonksiyonu ile kontrol ediyorduk. Ancak bu işlem program yazımında birçok zorluk çıkartır. Bu durumu en iyi yöntem olan get() fonksiyonunu kullanarak yapmaktır. Get() fonksiyonuna ilk parametre olarak anahtar verriz :
1 2 3 4 5 6 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.get('Ad')) print(sozluk.get('Sınıf')) |
ÇIKTI : Burada şöyle bi açıklama gerekiyor eğer sözlükte eleman varsa, anahtarını verir. Yoksa ise None mesajı verir.
1 2 |
Ali None |
Bu fonksiyon programcılıkta oldukça kullanışlıdır. Bunun yanında çoğu programcı sözlükte olmayan bir anahtar çağırıldığında, standart bir değerin döndürülmesini ister. Bu değeri get() fonksiyonu ile ikinci parametre olarak verebiliriz :
1 2 3 4 5 6 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.get('Ad','Ad Elemanı Bulunamadı!')) print(sozluk.get('Sınıf','Sınıf Elemanı Bulunamadı!')) |
1 2 |
Ali Sınıf Elemanı Bulunamadı! |
Sözlüklerde Pop() Fonksiyonu Kullanımı
Sözlüklerden eleman silmenin en iyi yolu pop() fonksiyonunu kullanmaktır. Pop() fonksiyonu sözlükten elemanı silerken değerini de döndürür. Aynı zamanda eleman silerken silinen anahtar yok ise, ikinci parametre olarak değer döndürebiliriz :
1 2 3 4 5 6 7 8 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.pop('Ad','Böyle Eleman Yok')) # Sil print(sozluk.pop('Sinif','Böyle Eleman Yok')) # Sil # Son hali print(sozluk) |
ÇIKTI :
1 2 3 |
Ali Böyle Eleman Yok {'Soyad': 'Yaman'} |
Sözlüklerde Copy() Fonksiyonu Kullanımı
Sözlüklerde verilerin kopyalama işlemi için en uygun fonksiyon Copy() fonksiyonudur.
1 2 3 4 5 6 7 8 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } kopya = sozluk.copy() print('Orjinal : ',sozluk) print('Kopya : ',kopya) |
ÇIKTI :
1 2 |
Orjinal : {'Ad': 'Ali', 'Soyad': 'Yaman'} Kopya {'Ad': 'Ali', 'Soyad': 'Yaman'} |
Copy() fonksiyonu ile yeni oluşturulan sözlüklerde birbirinden bağımsızdır. Örneğin pop() fonksiyonu ile birinden eleman silersek diğeri etkilenmez sadece silinen etkilenir. Fakat değişken eşitlemesi ile sozluk=yenisozluk yapip yenisozluk verisini kullanırsak bu durumda bu şekil sonuç cıkmayacaktır. Bu nedenli duruma göre değişken ataması veya copy() fonksiyonunu kullanin.
Sözlüklerde Update() Fonksiyonu Kullanımı
Sözlüklerde verilerin güncelleme işleminde kullanılan en uygun fonksiyon update() fonksiyonudur.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } yenibilgiler ={ 'TEL':'0531xxxxxx', 'Nereli':'Malatya' } # güncelleme sozluk.update(yenibilgiler) print(sozluk) |
ÇIKTI :
1 |
{'Ad': 'Ali', 'Nereli': 'Malatya', 'Soyad': 'Yaman', 'TEL': '0531xxxxxx'} |
- Mevcut sözlüğüme update() fonksiyonu ile farkli bir sozluk tanımlaması ile güncelledik.
Bu verdiğimiz fonksiyon özellikleri sözlükler genel olarak kullanılan fonksiyonlardır. Program yazarken işinizi kolaylaştıracağını düşüniyoruz. Diğer kullanmadığımız fonksiyonları ise dir() fonksiyonu ile görebilirsiniz :
1 2 3 4 5 |
sozluk = { 'Ad':'Ali', 'Soyad':'Yaman' } print(sozluk.__dir__()) |
ÇIKTI :
1 2 3 4 5 |
['__contains__', '__getattribute__', 'popitem', 'keys', 'get', '__sizeof__', '__reduce__', 'fromkeys', '__eq__', '__subclasshook__', 'setdefault', 'pop', '__class__', '__new__', '__getitem__', '__le__', '__ne__', 'items', '__ge__', '__init__', 'clear', '__repr__', '__setattr__', '__lt__', '__doc__', '__setitem__', '__str__', '__delitem__', '__format__', '__delattr__', '__hash__', '__iter__', '__reduce_ex__', 'update', 'copy', '__dir__', '__gt__', '__len__', 'values'] |
Yararlı olması dileğiyle…
Cevap yazın