🐍 Python Sözlük (Dictionary) Yapılarına Eleman Ekleme ve Güncelleme
📘 Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde, Python sözlük yapılarına eleman ekleme ve güncelleme için kullanılan dört temel yöntemi öğreneceksiniz:
Atama operatörü (=), .update() metodu, birleştirme (|) ve güncelleme (|=) operatörleri.
Ayrıca performans, bellek yönetimi ve koşullu ekleme gibi pratik ipuçlarını da keşfedeceksiniz.
🧩 1️⃣ Atama Operatörü (=) ile Eleman Ekleme
Python’da tek bir anahtar-değer çifti eklemek veya güncellemek için en hızlı yöntemdir.
veri_havuzu = {'urun': 'Rabisu Cloud Sunucu', 'fiyat': 1500}
print("Orijinal sözlük:", veri_havuzu)
veri_havuzu['fiyat'] = 1800 # Mevcut anahtar güncellenir
veri_havuzu['stok'] = 100 # Yeni anahtar eklenir
print("Güncellenmiş sözlük:", veri_havuzu)
📝 Açıklama:
veri_havuzu['fiyat'] mevcut değeri değiştirir.
veri_havuzu['stok'] yeni anahtar ekler.
Çıktı:
Orijinal sözlük: {'urun': 'Rabisu Cloud Sunucu', 'fiyat': 1500}
Güncellenmiş sözlük: {'urun': 'Rabisu Cloud Sunucu', 'fiyat': 1800, 'stok': 100}
⚙️ Anahtar Ezilmeden (Koşullu) Ekleme Var olan bir anahtarın değerinin yanlışlıkla üzerine yazılmasını önlemek için if koşulu kullanın:
ayarlar = {'tema': 'koyu', 'dil': 'tr'}
if 'bolge' not in ayarlar:
ayarlar['bolge'] = 'tr1-node01'
print(ayarlar)
Çıktı:
{'tema': 'koyu', 'dil': 'tr', 'bolge': 'tr1-node01'}
🧰 2️⃣ update() Metodu ile Toplu Güncelleme
Birden fazla anahtar-değer çiftini tek seferde eklemenizi sağlar.
site = {'Platform': 'Rabisu', 'Rehber': 'Python Sözlük Güncelleme'}
print("Orijinal:", site)
site.update({'Yazar': 'Rabisu', 'Kategori': 'Python'})
print("Yeni bilgiler eklendi:", site)
ek_bilgi = {'Sunucu': 'tr1-node01', 'Ip': '192.168.1.1'}
site.update(ek_bilgi)
print("Ek bilgiler eklendi:", site)
🧠 Not: .update() metodu orijinal sözlüğü yerinde (in-place) değiştirir. Eğer aynı anahtar varsa, yeni değer eskiyi ezerek günceller.
🔗 3️⃣ Birleştirme Operatörü (|) – Python 3.9+
İki sözlüğü birleştirip yeni bir sözlük döndürür, orijinalleri değiştirmez.
ayarlar_varsayilan = {'host': 'localhost', 'port': 5432}
ayarlar_kullanici = {'port': 3306, 'ssl': True}
birlesik_ayar = ayarlar_varsayilan | ayarlar_kullanici
print("Yeni birleşik ayar:", birlesik_ayar)
📝 Açıklama: Sağdaki sözlükteki aynı anahtarlar önceliklidir (port değeri 3306 olur). Orijinal sözlükler değişmeden kalır.
🛠️ 4️⃣ Güncelleme Operatörü (|=) – Python 3.9+
|= operatörü .update() ile aynı işlevi görür, ancak daha modern bir sözdizimi sunar.
ana_ayar = {'host': 'localhost', 'log_seviyesi': 'INFO'}
ek_ayar = {'port': 8080, 'log_seviyesi': 'DEBUG'}
ana_ayar |= ek_ayar
print("Güncel ayar:", ana_ayar)
Çıktı:
{'host': 'localhost', 'log_seviyesi': 'DEBUG', 'port': 8080}
🧠 Fark:
update() → mevcut sözlüğü değiştirir
|= → aynı işlemi kısa ve okunabilir biçimde yapar
🚀 Performans ve Bellek Karşılaştırması
| 🧩 Yöntem | 💡 En Uygun Kullanım | ⚙️ Performans | 💾 Bellek Kullanımı |
|---|---|---|---|
sözlük['anahtar'] = değer | Tek eleman ekleme | ⚡ En Hızlı | 🔹 Düşük |
.update() | Toplu işlem | ⚡ Hızlı | 🔹 Düşük (in-place) |
| ` | ` | Yeni sözlük oluşturma | ⚙️ Orta |
| ` | =` | Modern toplu güncelleme | ⚡ Hızlı |
💡 Ek ipucu: Yeni bir sözlük oluştururken dict() yerine kullanmak daha hızlıdır çünkü Python bunu derleme zamanında optimize eder.
🧠 İleri Seviye: Derin (Deep) Birleştirme
İç içe (nested) sözlükleri birleştirirken standart update() iç yapıyı korumaz. Bunun için özel bir fonksiyon kullanın:
def deep_merge(d1, d2):
result = d1.copy()
for k, v in d2.items():
if k in result and isinstance(result[k], dict) and isinstance(v, dict):
result[k] = deep_merge(result[k], v)
else:
result[k] = v
return result
💬 Sıkça Sorulan Sorular (SSS)
- Sözlüğe eleman eklemenin en hızlı yolu nedir?
dict[key] = value ile tek eleman eklemek en hızlı yöntemdir.
- dict() ve arasında fark var mı?
Evet. derleme zamanında optimize edilir, bu yüzden daha hızlıdır.
- update() ve | operatörü arasında fark nedir?
.update() mevcut sözlüğü değiştirir, | ise yeni bir sözlük oluşturur.
- Aynı anahtar iki sözlükte varsa ne olur?
İkinci (sağdaki) sözlükteki değer, birincinin üstüne yazılır.
- Anahtar yoksa ekle, varsa geç?
if 'anahtar' not in sozluk:
sozluk['anahtar'] = deger
🎯 Sonuç
Bu rehberde Python sözlüklerine veri ekleme ve güncellemenin dört temel yöntemini öğrendiniz: =, .update(), | ve |=
Performans, bellek verimliliği ve okunabilirlik açısından:
Tek eleman için =
Toplu işlemde .update()
Yeni sözlük için |
Yerinde güncelleme için |= önerilir.