Pythontr

husonet | Tarih: 31.01.2011

Python Sözlükler ve Kullanımı

Bu yazımızda, Python sözlükler hakkında her şeyi öğreneceksiniz; nasıl oluşturulduklarını, sözlüklere erişim, ekleme, düzenleme ve silme gibi işlemleri ve fonksiyonları.

Python Sözlük Yapısı


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.


 Python Sözlükler

Bir Python Sözlük Nasıl Oluşturulur?


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ük Öğelerine Erişim


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]

Sözlükte öğeler nasıl eklenir ve nasıl değiştirilir?


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}

Python Sözlüklerden öğeler nasıl silinir veya kaldırılır?


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)

Python Sözlük Fonksiyonları


Sözlük için kullanabileceğiniz fonksiyonlar aşağıda listelenmeştir.


FonksiyonAçı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.

Python Sözlük Metodları


Sözlükte mevcut olan metodlar aşağıda listelenmiştir. Bazıları yukarıdaki örneklerde zaten kullanılmıştır.


MetodAçı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.




ilgili konular
python listeler (list)
python demetler (Tuples)
python değişkenler tanımlanması(Declaring variables)
python listeleri haritalama, filtreleme, azaltma
[url=/makale.py?tid=47python listelerde matrisler[/url]