Python Sözlüklerinde Eksik Anahtarları İşleme

| | | | | | | | | | | | | | | | | | | |

# Sözlüğü sergilemek için Python kodu ve
# eksik değer hatası


# sözlüğü başlatıyor

d = { `a` : 1 , ` b` : 2 }


# eksik anahtarın değerini görüntülemeye çalışıyor

print ( "c` ile ilişkilendirilen değer: " )

print (d [ ` c` ])

Hata:

Geri izleme (en son arama): Dosya "46a9aac96614587f5b794e451a8f4f5f.py", satır 9, baskıda (d [`c`]) KeyError:` c` 

In Yukarıdaki örnekte, sözlükte "c" adlı hiçbir anahtar çalışma zamanı hatası vermedi. Bu tür durumlardan kaçınmak ve belirli bir anahtarın eksik olduğu konusunda kullanıcıyı uyarmak veya o konuma varsayılan bir mesaj göndermek için, eksik anahtarları ele almanın birkaç yolu vardır.

Yöntem 1: get () işlevini kullanmak

Bir anahtarı doğrulamamız gerektiğinde get (key, def_val) yöntemi yararlıdır. Anahtar varsa, anahtarla ilişkili değer yazdırılır, aksi takdirde bağımsız değişkenlerde iletilen def_değeri döndürülür.

Yöntem 2: setdefault () kullanma

setdefault (anahtar, def_value) , get () gibi çalışır, ancak fark şudur ki, her anahtar eksik olduğunda, def_value ile ilişkili bir def_value ile yeni bir anahtar oluşturulur argümanlara anahtar iletildi.

Yukarıdaki işlevleri uygulamak için Defaultdict " — içinde tanımlanan bir kapsayıcıdır "koleksiyon " adlı bir modül. Argüman olarak bir işlevi (varsayılan fabrika) alır . Varsayılan fabrika varsayılanı "int" olarak ayarlanmıştır, bu 0 . anahtar eksikse — defaultdict, döner ve varsayılan varsayılan tarafından görüntülenir. get () veya setdefault () üzerinde önceliklidir.

# defaultdict göstermek için Python kodu


# import & quot; koleksiyonlar " defaultdict için

import koleksiyonlar


# varsayılan bildirim
# eksik anahtarlar için varsayılan "Anahtar bulunamadı" değerini ayarlar

defd = koleksiyonlar. defaultdict ( lambda : `Anahtar bulunamadı` < kod sınıfı = "düz">)


# değerleri başlatma

defd [ `a` ] = 1


# değerleri başlatıyor

defd [ `b` ] = 2


# print value

print ( "a` ile ilişkilendirilen değer: " , bitiş = "")

print (defd [ `a` ])


# ' ile ilişkili yazdırma değeri '

print ( "İle ilişkili değer ` c` : " , end = " ")

yazdır ( defd [ `c` ])

Çıktı:

`a` ile ilişkili değer: 1` c` ile ilişkili değer: Anahtar Bulunamadı 

Bu makale Manjeet Singh . Python.Engineering iseniz ve katkıda bulunmak istiyorsanız, Contribute.python.engineering kullanarak veya bir makale yayınlayarak da bir makale yazabilirsiniz. @ python.engineering`e katkıda bulunun. Python.Engineering ana sayfasında görünen makaleme bakın ve diğer meraklılara yardımcı olun.

Yanlış bir şey bulursanız veya yukarıda tartışılan konu hakkında daha fazla bilgi paylaşmak istiyorsanız lütfen yorum gönderin.