شرح شامل لطريقة استخدام دالة get في Python مع القواميس (dict)

1. أساسيات نوع القاموس (dict) في Python

نوع القاموس في Python (dict) هو هيكل بيانات يتكون من أزواج مفتاح وقيمة. على عكس القوائم أو الـ tuples، يمكن الوصول إلى البيانات بكفاءة باستخدام المفاتيح. يُستخدم هذا الهيكل في العديد من السيناريوهات مثل إدارة المنتجات أو معلومات المستخدمين.

العمليات الأساسية على القواميس

لإنشاء قاموس، نكتب أزواج المفتاح والقيمة داخل أقواس معقوفة {} مفصولة بفواصل.
my_dict = {"apple": 100, "banana": 200, "orange": 150}
في هذا المثال، المفتاح “apple” مرتبط بالقيمة 100. للوصول إلى عنصر في القاموس، نستخدم المفتاح كما يلي:
print(my_dict["apple"])  # النتيجة: 100

الوصول إلى المفاتيح باستخدام []

عند محاولة الوصول إلى قيمة بمفتاح غير موجود باستخدام []، سيظهر خطأ KeyError.
print(my_dict["grape"])  # KeyError: 'grape'
عند حدوث هذا الخطأ، سيتوقف البرنامج عن التنفيذ، لذلك من الضروري التعامل مع الأخطاء.

2. أساسيات دالة get

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

كيفية استخدام دالة get

إذا كان المفتاح موجودًا، تعيد الدالة القيمة المرتبطة به، وإذا لم يكن موجودًا، تعيد None.
my_dict = {"apple": 100, "banana": 200, "orange": 150}

# مفتاح موجود
print(my_dict.get("apple"))  # 100

# مفتاح غير موجود
print(my_dict.get("grape"))  # None

تحديد قيمة افتراضية

يمكنك تحديد قيمة افتراضية تُعاد إذا لم يكن المفتاح موجودًا. هذا يجعل الكود أكثر مرونة.
print(my_dict.get("grape", 0))  # النتيجة: 0
باستخدام القيمة الافتراضية، يستمر البرنامج في العمل دون توقف غير متوقع.

3. الفرق بين دالة get والوصول باستخدام []

الفرق الرئيسي بين get و [] هو التعامل مع الأخطاء. عند استخدام [] مع مفتاح غير موجود يظهر خطأ KeyError، بينما get يعيد None أو القيمة الافتراضية.

اختلافات في التعامل مع الأخطاء

المثال التالي يوضح الفرق:
my_dict = {"apple": 100, "banana": 200}

# الوصول باستخدام []
try:
    print(my_dict["grape"])
except KeyError:
    print("المفتاح غير موجود")

# الوصول باستخدام get
print(my_dict.get("grape", "المفتاح غير موجود"))
مع [] نحتاج إلى معالجة الأخطاء يدويًا، بينما get يجعل الكود أبسط وأسرع.

4. أمثلة عملية على استخدام دالة get

دالة get مفيدة جدًا في التطبيقات العملية مثل التعامل مع استجابات الـ API أو إدخال المستخدمين لتجنب أخطاء KeyError.

التعامل مع استجابة API

يمكن متابعة التنفيذ بأمان حتى إذا لم يكن المفتاح موجودًا في الاستجابة.
response = {"status": "success", "data": {"name": "Alice"}}

email = response.get("data", {}).get("email", "البريد الإلكتروني غير مسجل")
print(email)  # النتيجة: البريد الإلكتروني غير مسجل
باستخدام get مع القواميس المتداخلة، يصبح الكود أكثر أمانًا وقابلية للقراءة.

تهيئة القواميس أو عمليات العد

يمكن استخدام get لعمليات العد أو التهيئة.
counts = {}
items = ["apple", "banana", "apple", "orange"]

for item in items:
    counts[item] = counts.get(item, 0) + 1

print(counts)  # {'apple': 2, 'banana': 1, 'orange': 1}
في هذا المثال، المفتاح غير الموجود يبدأ من القيمة 0، ما يجعل الكود أكثر بساطة.
侍エンジニア塾

5. الخلاصة

تعتبر دالة get أداة مهمة عند العمل مع القواميس في Python، لأنها تبسط معالجة الأخطاء وتجعل الكود أكثر كفاءة. خاصة عند التعامل مع بيانات خارجية أو إدخال المستخدم، فهي تمنع أخطاء KeyError وتسمح باستخدام قيم افتراضية. باستخدام get، يمكنك كتابة كود أكثر أمانًا ومرونة في Python.
年収訴求