logo

كيفية التحقق من وجود مفتاح في قاموس بايثون

في لغة بايثون، القاموس عبارة عن مجموعة غير مرتبة من قيم البيانات التي يمكن استخدامها لإدارة وتخزين القيم مثل الخريطة. على عكس أنواع البيانات الأخرى، التي يمكن أن تحمل فقط قيمة محددة كعنصر، يمكن للقاموس أن يحمل زوجًا من القيمة الرئيسية. يتضمن القاموس زوجًا من القيمة الرئيسية لجعله أكثر كفاءة. تعدد الأشكال غير مسموح به في مفاتيح القاموس. تم إنشاء القاموس بلغة بايثون من خلال تضمين سلسلة من الإدخالات في أقواس متعرجة وفصلها بفاصلة. يقوم القاموس بتخزين أزواج من القيم، أحدها هو المفتاح والآخر هو عنصر زوج القيمة: المفتاح.

في القاموس، يمكن أن تكون القيم من أي بنية بيانات ويمكن حتى نسخها، ولكن لا يمكن نسخ المفاتيح التي يجب أن تكون غير قابلة للتغيير.

التحقق من مفتاح في القاموس

في بايثون، يعد القاموس بالفعل بنية بيانات مفيدة تقوم بتخزين أزواج القيمة الرئيسية. الحصول على قيمة مفتاح معين من القاموس مطلوب بشكل متكرر في البرمجة؛ ومع ذلك، فإن وجود مفتاح معين في القاموس ليس مضمونًا دائمًا. ونتيجة لذلك، من الجيد التحقق مرة أخرى مما إذا كان المفتاح ينتمي إلى القاموس قبل استرداد قيمته.

باستخدام has_key()

إذا تم العثور على مفتاح معين في القاموس، فإن has_key() الطريقة تُرجع صحيحًا؛ وإلا فإنها ترجع كاذبة.

لقد جعل Python 3 هذا مهملاً. يمكن استخدام هذه الطريقة إذا كنا نعمل على إصدار أقدم من Python 3.

يمكن استخدام الأمر أدناه لتأكيد إصدار Python في cmd.

شفرة:

 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') 

انتاج:

 --------------------------------------------------------------------------- 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' 

منذ أن تم تنفيذ هذا الرمز على Python 3 فإنه يظهر خطأ.

إذا كان في بيان

تتحقق هذه الطريقة من وجود مفتاح معين داخل القاموس باستخدام عبارة if-in. نحن نوظف مشغل العضوية في ، بهذه الطريقة. يُستخدم هذا العامل لتحديد ما إذا كانت إحدى القيم تنتمي إلى أخرى. يعطيك نتيجة منطقية.

شفرة:

 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') 

انتاج:

 Key exists in Animals 

والآن ننظر إلى الحالة السلبية.

شفرة:

 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') 

انتاج:

 There is no key '4' in Animals 

وبالمثل، فإن ليس في يمكن استخدام عامل التشغيل لمعرفة ما إذا كان هناك مفتاح في القاموس غير موجود. ومع ذلك، ضع في اعتبارك أن في العملية حساسة لحالة الأحرف، لذا تأكد إما من أن جميع المفاتيح بنفس الحالة أو استخدم أعلى () أو أدنى() طُرق.

شفرة:

استبدال سلسلة جافا سكريبت
 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') 

انتاج:

 Key exists in Animals 

باستخدام طريقة الحصول على ().

توفر طريقة get() قيمة المفتاح ذي الصلة في القاموس. إذا لم يكن المفتاح موجودًا، فسيُرجع إما بلا أو قيمة افتراضية (إذا تم توفيرها). يمكننا تمرير مفتاح لهذه الطريقة ومعرفة ما إذا كان موجودًا في قاموس بايثون المحدد.

بناء جملة الدالة get() هو:

 dict_name.get(keyname, value) 

هنا، dict name هو عنوان القاموس الذي ستستخدمه.

حدود

    الاسم الرئيسي-الاسم الرئيسي للقيمة التي تريد إرجاعها.قيمة-في حالة عدم وجود المفتاح، يتم توفير هذه القيمة كخيار.

شفرة:

 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') 

انتاج:

 Key exists in Animals 

الآن نأخذ حالة سلبية،

شفرة:

 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') 

انتاج:

التكرار من خلال خريطة Java
 There is no key '5' in Animals 

عند استخدام هذه الطريقة، يرجى الأخذ في الاعتبار أنه إذا كان لدينا مفتاح بهذه القيمة 'لا شيء'، فلن يكون دقيقًا. إذا لم يكن لدينا واحدة، فإن هذه التقنية ستكون كافية. إذا أردنا استخدام القيم التي يتم إرجاعها بهذه الطريقة، فيمكننا حفظها في متغير.

استخدام المفاتيح()

ال مفاتيح () يمكن استخدام الوظيفة وعامل التشغيل 'in' لمعرفة ما إذا كان هناك مفتاح موجود في القاموس. ال مفاتيح () تقوم الطريقة بإرجاع قائمة بالمفاتيح في القاموس، وتتحقق عبارة 'if, in' مما إذا كان المفتاح المقدم موجودًا في القائمة. تقوم بإرجاع True إذا كان المفتاح موجودًا؛ وإلا فإنها ترجع False.

مدخل

 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') 

انتاج:

 Key exists in Animals 

تحقق لمعرفة ما إذا كان القاموس يحتوي على مفاتيح متعددة.

في عبارة واحدة، يمكننا أيضًا التحقق مما إذا كان القاموس يحتوي على مفاتيح متعددة. يمكننا استخدام الجميع() تعمل جنبًا إلى جنب مع فهم القائمة لمعرفة ما إذا كان القاموس يحتوي على العديد من المفاتيح أو جميعها.

شفرة:

 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') 

انتاج:

 Not all the keys are there in Animals 

افحص قائمة القواميس لمعرفة ما إذا كان المفتاح موجودًا

قائمة القواميس هي مجموعة من القواميس التي يمكن العثور عليها في القائمة.

  • list_of_dictionary - قائمة تحتوي على ثلاثة كائنات قاموسية.
  • 'ب' في مفاتيح المفاتيح الموجودة في قائمة القاموس - إنتاج قائمة المفاتيح ضمن قائمة القواميس باستخدام فهم القائمة. ثم، في القائمة، معرفة ما إذا كان واحدا متاحا. سيُرجع قائمة تحتوي على True للمفاتيح التي هي 'b' وFalse للمفاتيح التي ليست واحدة.
  • Any() - يتحقق من قائمة الصواب/الخطأ المقدمة من خلال فهم القائمة. المفتاح 'b' موجود في قائمة القاموس إذا كان يتضمن صحيحًا واحدًا على الأقل. يتم بعد ذلك تنفيذ الكتلة 'if' بعد أن تُرجع True. وبخلاف ذلك، سيتم تنفيذ الكتلة 'آخر'.

شفرة:

 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') 

انتاج:

 Key exists in list_of_dictionaries 

تحقق مما إذا كان المفتاح موجودًا في قاموس JSON

يرمز JSON إلى 'Javascript Object Notation'، وهو زوج من القيمة الرئيسية يحفظ القيم.

ال json.loads() يمكن استخدام الطريقة لإنشاء قاموس من نص JSON.

بعد ذلك، كما هو موضح أدناه، يمكننا استخدام 'if وin' لمعرفة ما إذا كان المفتاح موجودًا في قاموس JSON.

مدخل

 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') 

انتاج:

 Key is present in the JASON dictionary 

خاتمة

للتلخيص، تعلمنا كيفية التحقق مما إذا كان المفتاح موجودًا في القاموس باستخدام عدة طرق. لقد تعلمنا أيضًا كيفية تطبيق هذه الأساليب على حالات مختلفة لمعرفة ما إذا كان المفتاح موجودًا في القاموس. لقد رأينا أيضًا كيف يستغرق كل خيار وقتًا مختلفًا.