Python Veri Yapıları - Dictionary
Python’da Dictionary(Sözlük) Veri Yapısı:
Python’da dictionary (sözlük), anahtar-değer çiftlerini saklayan ve veri arama, ekleme ve silme işlemleri için optimize edilmiş bir veri yapısıdır. Bu makalede, dictionary veri yapısı ile ilgili temel işlemler ve kullanım örnekleri ele alınacaktır:
- Dictionary’e Eleman Atama
- Dictionary Elemanlarını Gezme
- Dictionary İndeks Kullanarak Gezme
- Dictionary’de Bir Anahtarın Varlığını Kontrol Etme
items()
Fonksiyonunun Kullanımı- Dictionary İşlemlerinin Zaman ve Bellek Karmaşıklıkları (Complexıty)
1. Dictionary’e Eleman Atama
Dictionary’ye eleman atama işlemi, belirli bir anahtara değer atama veya yeni anahtar-değer çifti ekleme şeklinde olabilir.
a. Belirli Bir Anahtara Değer Atama
Var olan bir anahtarın değerini güncelleyebilir veya yeni bir anahtar-değer çifti ekleyebilirsiniz.
b. Eleman Silme
del
anahtar kelimesi veya pop()
metodu kullanılarak belirli bir anahtar silinebilir.
2. Dictionary Elemanlarını Gezme
Dictionary üzerinde gezinti yapmak için for
döngüsü kullanılabilir.
a. Anahtarları Gezme
Anahtarları iterasyonla dolaşarak işlemler yapabilirsiniz.
b. Değerleri Gezme
values()
metodu ile değerleri dolaşabilirsiniz.
3. Dictionary İndeks Kullanarak Gezme
Python dictionary veri yapısında indeks kavramı doğrudan yoktur, ancak anahtar-değer çiftlerini belirli bir sıra ile dolaşabilirsiniz.
4. Dictionary’de Bir Anahtarın Varlığını Kontrol Etme
Dictionary’de bir anahtarın olup olmadığını kontrol etmek için in
anahtar kelimesi kullanılabilir.
5. items()
Fonksiyonunun Kullanımı
items()
metodu, dictionary içindeki anahtar-değer çiftlerini bir tuple olarak döner.
a. Başlangıç İndeksini Belirleyerek Gezme
Anahtar-değer çiftlerini enumerate ile birlikte kullanarak gezinebilirsiniz.
6. Dictionary İşlemlerinin Zaman ve Bellek Karmaşıklıkları
Python’daki dictionary veri yapısı, hash tabanlı bir yapı olduğundan çoğu işlem ortalama O(1) zaman karmaşıklığına sahiptir. Ancak en kötü durum karmaşıklığı O(n) olabilir.
Zaman Karmaşıklığı
- Ekleme (Atama): O(1) amortize, O(n) en kötü durum (hash çakışması veya yeniden boyutlandırma gerekirse)
- Silme (del, pop()): O(1) amortize, O(n) en kötü durum
- Okuma (Anahtara göre değer okuma): O(1) amortize, O(n) en kötü durum
- Yazma (Anahtara göre değer yazma): O(1) amortize, O(n) en kötü durum
- Anahtarın varlığını kontrol etme (in): O(1) amortize, O(n) en kötü durum
Yer (bellek) karmaşıklığı
Python dictionary, eklenen her anahtar-değer çifti için hash tablosunda bir giriş tutar. Bu nedenle bellek kullanımı, eleman sayısına ve anahtarların hash tablosundaki dağılımına bağlı olarak değişir. O(n)
olarak kabul edilebilir.
Sonuç
Bu makalede, Python’da dictionary veri yapısında eleman atama, elemanları gezme, indeks kullanarak dolaşma, bir anahtarın varlığını kontrol etme ve items()
fonksiyonunun nasıl kullanılacağı üzerinde duruldu. Dictionary, anahtar-değer çiftleriyle çalışmayı kolaylaştıran ve Python programlamada sıkça kullanılan güçlü bir veri yapısıdır.