Python'da sözlük, harita gibi değerleri yönetmek ve depolamak için kullanılabilen sırasız bir veri değerleri kümesidir. Öğe olarak yalnızca belirli bir değeri taşıyabilen diğer Veri Türlerinin aksine, Sözlük bir anahtar/değer çiftini tutabilir. Sözlük, daha verimli hale getirmek için bir anahtar/değer çifti içerir. Sözlük anahtarlarında çok biçimliliğe izin verilmez. Python'da bir sözlük, bir dizi girişi süslü parantez içine alarak ve bunları virgülle ayırarak oluşturulur. Sözlük, biri Anahtar ve diğeri Anahtar:değer çifti öğesi olan değer çiftlerini saklar.
Bir sözlükte değerler herhangi bir veri yapısında olabilir ve hatta çoğaltılabilir, ancak değişmez olması gereken anahtarlar kopyalanamaz.
Sözlükteki Anahtarı Kontrol Etme
Python'da sözlük gerçekten de anahtar/değer çiftlerini saklayan kullanışlı bir veri yapısıdır. Belirli bir anahtarın değerini sözlükten almak programlamada sıklıkla gereklidir; ancak sözlükte belirli bir anahtarın varlığı her zaman gerçekten garanti edilmez. Sonuç olarak, bir anahtarın değerini almadan önce sözlüğe ait olup olmadığını bir kez daha kontrol etmek iyi bir fikirdir.
has_key()'i kullanma
Belirli bir anahtar sözlükte bulunursa, has_key() yöntem true değerini döndürür; aksi takdirde false değerini döndürür.
Python 3 bunu kullanımdan kaldırıldı. Python 3'ten daha eski bir sürümde çalışıyorsak bu yöntem kullanılabilir.
Python sürümünü cmd olarak onaylamak için aşağıdaki komut kullanılabilir.
Kod:
import sys print(sys.version) Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.has_key(key_to_check_for): print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Çıktı:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Input In [37], in () 1 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} 2 key_to_check_for = '2' ----> 3 if Animals.has_key(key_to_check_for): 4 print('Key exists in Animals') 5 else: AttributeError: 'dict' object has no attribute 'has_key'
Bu kod Python 3'te yürütüldüğünden beri bir hata gösteriyor.
if-in Bildirimi
Bu yöntem, if-in ifadesini kullanarak sözlükte belirli bir anahtarın bulunup bulunmadığını kontrol eder. Üyelik operatörünü kullanıyoruz içinde , bu şekilde. Bu operatör bir değerin diğerine ait olup olmadığını belirlemek için kullanılır. Size boolean bir sonuç verir.
Kod:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} Key = '2' if '2' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
Çıktı:
tarihten dizeye dönüştürme
Key exists in Animals
Şimdi olumsuz duruma bakıyoruz.
Kod:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} if '4' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
Çıktı:
There is no key '4' in Animals
Aynı şekilde, değil operatörü, sözlükte bir anahtarın mevcut olup olmadığını görmek için kullanılabilir. Ancak şunu unutmayın: içinde işlem büyük/küçük harfe duyarlı olduğundan ya tüm tuşların aynı olduğundan emin olun ya da daha yüksek() veya daha düşük() yöntemler.
Kod:
Animals = {'one': 'Cat', 'two':'Rat', 'three':'Bat'} setting_case = set(key.upper() for key in Animals) key_to_check_for = 'two' if key_to_check_for.upper() in setting_case: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Çıktı:
Key exists in Animals
get() Yöntemini Kullanmak
Get() yöntemi, ilgili anahtarın değerini bir sözlükte iletir. Anahtar orada değilse, Yok'u veya varsayılan değeri (eğer sağlanmışsa) döndürür. Bu yönteme bir anahtar iletebilir ve verilen Python sözlüğünde var olup olmadığına bakabiliriz.
get() fonksiyonunun sözdizimi şöyledir:
dict_name.get(keyname, value)
Burada dict name, kullanacağınız sözlüğün başlığıdır.
veri madenciliği
Parametreler
Kod:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Çıktı:
Key exists in Animals
Şimdi olumsuz bir vakayı ele alıyoruz,
Kod:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '5' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals')
Çıktı:
There is no key '5' in Animals
Bu yöntemi kullanırken, Yok değerine sahip bir anahtarımız varsa, bunun doğru olmayacağını lütfen unutmayın. Eğer elimizde yoksa bu teknik yeterli olacaktır. Bu yöntemin döndürdüğü değerleri kullanmak istersek bunları bir değişkene kaydedebiliriz.
Tuşları Kullanma()
anahtarlar() işlevi ve 'in' operatörü, sözlükte bir anahtarın bulunup bulunmadığını görmek için kullanılabilir. anahtarlar() yöntemi sözlükteki anahtarların bir listesini döndürür ve 'if, in' ifadesi sağlanan anahtarın listede olup olmadığını kontrol eder. Anahtar mevcutsa True değerini döndürür; aksi takdirde False değerini döndürür.
Giriş
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if key in Animals.keys(): print('Key exists in Animals') else: print(f'There is no key {key} in Animals')
Çıktı:
Key exists in Animals
Sözlüğün Çoklu Anahtarları olup olmadığını kontrol edin.
Tek bir ifadeyle sözlüğün birden fazla anahtar içerip içermediğini de kontrol edebiliriz. Şunu kullanabiliriz: Tümü() Sözlüğün birçok anahtarı mı yoksa tüm anahtarları mı içerdiğini görmek için liste kavramayla birlikte işlev görür.
Kod:
Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if all(key in Animals for key in ('1','5')): print('All keys exists in Animals') else: print('Not all the keys are there in Animals')
Çıktı:
Not all the keys are there in Animals
Anahtarın Var olup olmadığını görmek için Sözlük Listesini inceleyin
Sözlük listesi, bir listede bulunabilen sözlüklerin bir koleksiyonudur.
- list_of_dictionary - içinde üç sözlük nesnesi bulunan bir liste.
- Sözlük listesindeki anahtarların anahtarlarında 'b' - liste kavramayı kullanarak sözlükler listesindeki anahtarların listesini üretmek. Ardından listede mevcut olup olmadığına bakın. 'b' olan anahtarlar için True ve bir olmayan anahtarlar için False içeren bir liste döndürür.
- any() - Liste kavrama tarafından sağlanan Doğru/Yanlış listesini doğrular. 'b' anahtarı, en az bir Doğru içeriyorsa sözlük listesinde bulunur. 'İf' bloğu True'yu döndürdükten sonra yürütülür. Aksi halde 'else' bloğu çalıştırılır.
Kod:
list_of_dictionaries = [{'a': 'A'}, {'b': 'B'}, {'c': 'C'}] if any('b' in keys for keys in list_of_dictionary): print('key exists in list_of_dictionaries') else: print('key does not exists in list_of_dictionaries')
Çıktı:
Key exists in list_of_dictionaries
Anahtarın JSON Sözlüğünde olup olmadığını kontrol edin
JSON, 'Javascript Nesne Gösterimi' anlamına gelir ve değerleri kaydeden bir anahtar-değer çiftidir.
json.loads() yöntemi bir JSON metninden sözlük oluşturmak için kullanılabilir.
Daha sonra, aşağıda görüldüğü gibi, JSON sözlüğünde anahtarın olup olmadığını görmek için 'if ve in' komutunu kullanabiliriz.
Giriş
Java'daki yöntemler
import json json_str = '''{'a': 'A', 'b': 'B', 'c': 'C'}''' json_dictionary = json.loads(json_str) if 'c' in json_dictionary: print('Key is present in the JSON dictionary') else: print('Key is not present in JSON dictionary')
Çıktı:
Key is present in the JASON dictionary
Çözüm
Özetlemek gerekirse, anahtarın sözlükte olup olmadığını çeşitli yollarla nasıl kontrol edeceğimizi öğrendik. Anahtarın sözlükte olup olmadığını görmek için bu yöntemleri çeşitli örneklere nasıl uygulayacağımızı da öğrendik. Ayrıca her seçeneğin ne kadar farklı zaman aldığını da gördük.