Python Sözlükler (Dictionary), sırasız bir öğe koleksiyonudur. Key, value yani anahtar ve değer yapısında veri kümeleri oluştururlar. Her bir anahtar 'key' değerinden iki nokta üst üste işareti ile ayrılır biz bunlara öğeler derzi. Bu öğreler süslü parantez içerisinde vürgülle ayrılarak yer alırlar. Herhangi bir öğeye sahip olmayan boş sözlükler içi boş süslü parantezlerle ifade edilirler. {}
Python Sözlükleri json formatlara benzetebiliriz hatta neredeyse mantıkları aynıdır ve python için optimize edilmişlerdir.
Sözlükler süslü parantezler içerisinde vürgüllerle ayrılarak oluşturulurlar. Her bir öğenin bir anahtarı ve değeri vardır, bunlar vürgülle ayrılarak bir öğeyi oluştururlar.
Değerler herhangi bir veri türüne ait olabilirler, tekrarlanabilir fakat Anahtarlar kesinlikle benzersiz olmalıdır.
# bos bir sozluk sozluk = {} # integer veri tipi olusturulan keyler sozluk = {1: 'pythontr', 2: 'husonet'} # string ve integer veri tipi ile oluşan keyler sozluk = {'isim': 'Huseyin', 1: [7, 3, 1]} # dict fonksiyonu sozluk = dict({1:'pythontr', 2:'husonet'}) sozluk = dict([(1,'pythontr'), (2,'husonet')])
Yukarıdaki örneklerimizde gördüğünüz gibi dict fonksiyonu kullanarak sözlükler oluşturabilirsiniz.
Python sözlükler öğelerine erişmek için anahtarlarını 'KEY' kullanırlar değerler bu indexler üzerinden gösterilirler. Anahtarlar köşeli parantez içerisinde yada get fonksiyonu ile kullanılırlar.
get() fonksiyonun farkı, anahtar bulunamazsa KeyError yerine None döndürmesidir.
sozluk = {'isim': 'Huseyin', 1: [7, 3, 1]} print(sozluk['isim']) print(sozluk.get(1))
Scripti çalıştırdığınızda, çıktı aşağıdaki gibi olacaktır:
Huseyin [7, 3, 1]
Python Sözlükler, atama operatörünü kullanarak yeni öğeler ekleyebilir veya mevcut öğelerin değerini değiştirebilir.
Sözlükler anahtar zaten varsa, değerini güncelleştirir, aksi takdirde yeni bir anahtar değeriyle birlikte eklenir.
sozluk = {'isim':'Huseyin','yas':39} # deger değiştirme sozluk['yas'] = 40 print(sozluk) {'isim': 'Huseyin', 'yas': 40} # deger ekleme sozluk['adres'] = 'Levent' # sozluk ciktisi print(sozluk) {'isim': 'Huseyin', 'adres': 'Levent', 'yas': 40}
pop() fonksiyonunu kullanarak bir sözlüğün belirli bir öğesini kaldırabiliriz. Bu fonksiyon, key ve değerini öğe olarak kaldırır ve kaldırdığı öğenin değerini döndürür
popitem() fonksiyonu, sözlükten keyfi bir öğeyi (anahtar, değer) kaldırmak ve geri döndürmek için kullanılabilir. Tüm öğeler, clear() fonksiyonunu kullanarak bir kerede kaldırılabilir. not: Keyfi unsurlar rastgele unsurlarla aynı değildir.
Ayrıca öğeleri veya sözlüğün tamamını da kaldırmak için del anahtar kelimesini de kullanabiliriz.
# yeni bir sözlük oluşturalım sozluk = {1:1, 2:4, 3:9, 7:16, 5:25} # belirli bir öğeyi kaldıralım # çıktı 16 print(sozluk.pop(7)) # çıktı print(sozluk) {1: 1, 2: 4, 3: 9, 5: 25} # popitem kullanarak bir maddeyi kaldıralım print(sozluk.popitem()) (1, 1) print(sozluk.popitem()) (2, 4)
Sözlük için kullanabileceğiniz fonksiyonlar aşağıda listelenmeştir.
Fonksiyon | Açıklama |
cmp(dict1, dict2) | İki adet sözlüğün öğelerini karşılaştırır. |
len(dict) | Sözlük içinde yer alan öğelerin toplam sayısını verir. |
str(dict) | Sözlük tipini string tipine değiştirir. Genellikle sözlüklerin ekran çıktısını almak için kullanılır. |
type(variable) | Parametre olarak gönderilen değişkenin türünü döndürür. Geçilen değişken sözlükse, sözlük türünü döndürür. |
Sözlükte mevcut olan metodlar aşağıda listelenmiştir. Bazıları yukarıdaki örneklerde zaten kullanılmıştır.
Metod | Açıklama |
clear() | Sözlüğün tüm öğelerini kaldırır. |
copy() | Sözlüğün bir kopyasını döndürür. Atama operatörü ile aynıdır. |
copy() | Sözlüğün bir kopyasını döndürür. Atama operatörü ile aynıdır. |
fromkeys(seq[, v]) | Anahtarlar üzerinden değerleri eşitler. |
get(key[,d]) | Anahtarın değerini döndürür. Anahtar mevcut değilse, d'yi döndür (varsayılan olarak None'dır). |
items() | Sözlüğün öğelerinin yeni bir görünümünü döndür (anahtar, değer). |
keys() | Sözlüğün anahtarlarının yeni bir görünümünü döndür. |
pop(key[,d]) | Öğeyi anahtarla kaldırın ve değer bulunmadığında d değerini döndürün. Eğer d parametresi gönderilmezse ve anahtar bulunmazsa KeyError ecceptionu oluşur. |
popitem() | Keyfi bir öğeyi (anahtar, değeri) kaldırır ve geri döndürür. Sözlük boş ise KeyError exceptionu oluşturur. |
setdefault(key[,d]) | Anahtar sözlük içinde bir öğe ise, değerini döndür. Değilse sözlük içine anahtarı ekler ve d değişkeni belirtilmişse değer olarak anahtara ekler belirtilmemiş ise (varsayılan değer None olarak) değerini döner ve sözlük güncellenir. |
update([other]) | Anahtatlar mevcut ise bu anahtarları yeni değerlerle güncelleme yapar mevcut değilse ekler. |
values() | Sözlüklerin değerlerini döndürür. |
Yorumlar