Python'da bir sözlüğün değerini almak için köşeli parantez kullanmayı bırakın, bu yöntemi deneyin

Tam metin 2254 Kelimeler, tahmini öğrenme süresi 7 dakika

Kaynak: Pexels

Sözlük, aydınlanma eğitimi döneminde vazgeçilmez bir yardımcıdır

Sözlük, sıralı olmayan bir terim ve tanım koleksiyonudur, yani:

· Her veri noktasının bir tanımlayıcısı (yani terim) ve değeri (yani tanımı) vardır.

· Terim sözlükte benzersiz olmalıdır ve tekrarlanamaz.

· Listeden farklı olarak, bu terimler net bir sıra içinde değildir.

Bir sözlüğü tanımlamak için kaşlı ayraçlar kullanın ve terimleri veya tanım çiftlerini virgülle ayırın.

author = {"first_name": "Jonathan", "last_name": "Hsu", "kullanıcı adı": "jhsu98"}

Sözlük değerlerine erişmenin eski (kötü) yolu

Bir sözlükteki değerlere erişmenin geleneksel yolu, köşeli parantez gösterimi kullanmaktır. Bu sözdizimi, aşağıda gösterildiği gibi, terimin adını köşeli parantez içine alır.

author = {"first_name": "Jonathan", "last_name": "Hsu", "username": "jhsu98"} print (yazar) # jhsu98print (yazar) # KeyError: 'middle_initial'

Mevcut olmayan bir terimden alıntı yapmaya çalışmak, KeyError'a neden olur. Bu, özellikle öngörülemeyen iş verileriyle uğraşırken ciddi sorunlara neden olabilir.

İfadelerimizi try / exclude veya if ifadelerine sarabilsek de, sözlük terimlerini istiflemek için daha uygundur.

yazar = {} try: print (yazar), KeyError hariç, e: print (e) # 'username'ifauthor: print (yazar)

JavaScript arka planınız varsa, sözlük değerlerinden noktalarla alıntı yapmak çekici olabilir. Bu Python'da çalışmaz.

author = {"first_name": "Jonathan", "last_name": "Hsu", "username": "jhsu98"} print (author.username) # AttributeError: 'dict' nesnesinin 'kullanıcı adı' özelliği yoktur

.Get () yöntemini kullanın

Kaynak: Pexels

Sözlüğün değerlerine erişmek istediğinizde, en güvenli yol .get () yöntemini kullanmaktır. Bu işlevin iki parametresi vardır:

· İlk (Gerekli): Alınacak terimin adı. Terimlerin dinamik olarak alınmasına izin veren bir dize veya değişken olabilir.

· İkinci (isteğe bağlı): Terim yoksa, varsayılan değeri kullanın.

author = {"first_name": "Jonathan", "last_name": "Hsu", "username": "jhsu98"} print (author.get ('kullanıcı adı')) # jhsu98print (author.get ('middle_initial', None )) # Yok

Terim daha önce yayınlanmışsa, .get () geleneksel köşeli parantez referanslarından farklı değildir. Herhangi bir terim tanımlanmadıysa, istisnaların işlenmemesi için varsayılan bir değer döndürülür.

Bu varsayılan değer herhangi bir değer olabilir, ancak bunun isteğe bağlı olduğunu lütfen unutmayın. Varsayılan değer dahil edilmemişse, NULL'un Python eşdeğeri kullanılır.

.Setdefault () yöntemini kullanın

Bazen, sadece sözlükte tanımlanmamış terimlerden kaçınmak istemezsiniz, aynı zamanda kodun veri yapısını otomatik olarak düzeltmesini de istersiniz. .Setdefault () öğesinin yapısı .get () öğesinin yapısı ile aynıdır. Bununla birlikte, terim tanımlanmadığında, varsayılan değere geri dönmenin yanı sıra, sözlük terimi de bu değere ayarlanacaktır.

author = {"first_name": "Jonathan", "last_name": "Hsu", "username": "jhsu98"} print (author.setdefault ('kullanıcı adı')) # jhsu98print (author.setdefault ('middle_initial', None )) # Yok

Yukarıdaki örnek, .setdefault () terimi mevcut olduğunda köşeli parantez gösterimi veya .get () ile aynı olduğunu gösterir. Sadece bu değil, terim olmadığında, .get () gibi geçirilen varsayılan değeri döndürür.

.Get () 'den farklıdır çünkü terimleri ve tanımları artık aşağıda gösterildiği gibi sözlüğün bir parçasıdır.

author = {"first_name": "Jonathan", "last_name": "Hsu", "username": "jhsu98"} print (author.setdefault ('middle_initial', None)) # Noneprint (yazar) "" "{' first_name ':' Jonathan ',' last_name ':' Hsu ',' kullanıcı adı ':' jhsu98 ',' middle_initial ': None} ""

Hem .get () hem de .setdefault () sözlük değerlerine atıfta bulunmak için mükemmel tekniklerdir ... Eski alışkanlıkları kırmak ve bu yaklaşımı benimsemek sadece biraz zaman alır.

Kaynak: Pexels

Orijinal verileri değiştirmek istemiyorsanız, .get () en iyi seçiminizdir.

Orijinal veriyi değiştirmek istiyorsanız, .setdefault () kullanın ve bitirdiniz.

Yorum Beğen Takip Et

Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

Bugün Core Voice | 4G / 5G! Raytheon Mountain'ın iletişim ve bilgi hizmetleri etkinleştirme koşullarına sahiptir.
önceki
Apache Kafka'da makine öğrenimi ve gerçek zamanlı analiz uygulaması
Sonraki
Core Voice Today | Wuhan Viroloji Enstitüsü, 21 Ocak'ta bir Çin buluş patenti için Remdesivir'i açıkladı
Geliştirici görmeli! KISS, DRY ve izlenecek kodlama ilkeleri
2020'de veri biliminde çığır açan dört adım
Bugün Core Voice | "Zorlu" Salgın Önleme! Sakinler topluluğa girmek için 5 metre uzunluğundaki bir dezenfeksiyon kanalından geçmelidir.
Çin Tüketiciler Derneği, kişisel mülkiyet güvenliğini ve kişisel gizliliği korumak için Bahar Festivali sırasında tüketime yönelik yedi ipucu yayınladı
Yaşamın geçişini açmak için ülke çapında bir çaba gösterildi ve birçok yerde itfaiye departmanları, itfaiye aracı geçitlerini işgal etmenin gizli tehlikelerini araştırdı.
Yeni Zelanda'nın Kuzey Adası'nda orman yangını çıktı
Çin Yeni Yılı Kültür Merkezi ücretsiz olarak açılarak size Yeni Yılı tattırıyor
Salgının altındaki üç zihniyet uykusuzluğa neden olabilir mi? Uzman: Bu, güvensizlikle ilgili
Guangzhou'dan trenle 29 işe dönüş bugün Hubei'ye gidiyor! 541 kurumsal çalışanı noktadan noktaya toplayın
Kurumsal yanıt verenlerin% 70'inden fazlası gelecekteki işlerine güveniyor ve sağlık sektörü en çok güven duyuyor
İtalya'nın en çok etkilenen bölgesinde Çinli bir adam duvara bir maske asarak komşulara dağıttı ama kızın kalbini aldı
To Top