ماذا سنتعلم؟ اليوم سنتعمق في القواميس (Dictionaries) في بايثون، وكيفية استخدامها لإدارة البيانات المعقدة بكفاءة باستخدام نظام المفتاح والقيمة.
سنتعلم كيفية إنشاء القواميس، إضافة العناصر، تحديثها، وحذفها، بالإضافة إلى استكشاف بعض العمليات المتقدمة.
الخطوة 1: إنشاء القواميس والوصول إلى العناصر
القواميس هي هياكل بيانات غير مرتبة تخزن أزواجاً من المفاتيح والقيم. كل مفتاح يجب أن يكون فريداً وغير قابل للتغيير (immutable).
ملاحظة تقنية: المفاتيح الشائعة هي السلاسل النصية والأرقام، بينما القيم يمكن أن تكون أي نوع بيانات.
# إنشاء قاموس بسيط يمثل معلومات مستخدم
user_profile = {
"username": "coder_x", # المفتاح "username" يقابله القيمة "coder_x"
"email": "coder.x@example.com", # المفتاح "email" يقابله القيمة "coder.x@example.com"
"age": 30, # المفتاح "age" يقابله القيمة 30
"is_active": True # المفتاح "is_active" يقابله القيمة True
}
# الوصول إلى قيمة باستخدام مفتاحها
print(f"اسم المستخدم: {user_profile['username']}") # طباعة قيمة المفتاح 'username'
print(f"البريد الإلكتروني: {user_profile['email']}") # طباعة قيمة المفتاح 'email'
# محاولة الوصول لمفتاح غير موجود سيؤدي لخطأ KeyError (يمكنك إلغاء التعليق لتجربتها)
# print(user_profile['phone'])
# استخدام .get() للوصول الآمن وتحديد قيمة افتراضية
phone = user_profile.get("phone", "غير متوفر") # إذا لم يكن المفتاح موجوداً، ستكون القيمة "غير متوفر"
print(f"رقم الهاتف: {phone}")
الخطوة 2: إضافة وتحديث وحذف العناصر
يمكننا تعديل القواميس بسهولة بعد إنشائها.
# إضافة عنصر جديد إلى القاموس
user_profile["city"] = "دبي" # إضافة مفتاح "city" بقيمة "دبي"
print(f"القاموس بعد إضافة المدينة: {user_profile}")
# تحديث قيمة عنصر موجود
user_profile["age"] = 31 # تحديث قيمة المفتاح "age" إلى 31
print(f"القاموس بعد تحديث العمر: {user_profile}")
# حذف عنصر باستخدام del
del user_profile["is_active"] # حذف المفتاح "is_active" وقيمته
print(f"القاموس بعد حذف حالة النشاط: {user_profile}")
# حذف عنصر باستخدام .pop() والحصول على قيمته
removed_email = user_profile.pop("email") # حذف "email" والحصول على قيمته المحذوفة
print(f"البريد الإلكتروني المحذوف: {removed_email}")
print(f"القاموس بعد حذف البريد الإلكتروني: {user_profile}")
الخطوة 3: التكرار (Iteration) على القواميس وعمليات مفيدة أخرى
يمكننا التكرار على مفاتيح القواميس، قيمها، أو أزواجها (مفتاح-قيمة).
# التكرار على المفاتيح (افتراضي)
print("\nمفاتيح القاموس:")
for key in user_profile: # التكرار الافتراضي يكون على المفاتيح
print(key)
# التكرار على القيم
print("\nقيم القاموس:")
for value in user_profile.values(): # استخدام .values() للحصول على القيم فقط
print(value)
# التكرار على أزواج المفتاح والقيمة
print("\nمفاتيح وقيم القاموس:")
for key, value in user_profile.items(): # استخدام .items() للحصول على أزواج (مفتاح, قيمة)
print(f"{key}: {value}")
# التحقق من وجود مفتاح
if "username" in user_profile: # التحقق مما إذا كان المفتاح "username" موجوداً
print("\nاسم المستخدم موجود في القاموس.")
# الحصول على عدد العناصر في القاموس
print(f"عدد العناصر في القاموس: {len(user_profile)}") # استخدام len() لمعرفة عدد الأزواج
الكود النهائي الكامل
# ماذا سنتعلم؟ اليوم سنتعمق في القواميس (Dictionaries) في بايثون، وكيفية استخدامها لإدارة البيانات المعقدة بكفاءة باستخدام نظام المفتاح والقيمة.
# سنتعلم كيفية إنشاء القواميس، إضافة العناصر، تحديثها، وحذفها، بالإضافة إلى استكشاف بعض العمليات المتقدمة.
# الخطوة 1: إنشاء القواميس والوصول إلى العناصر
# القواميس هي هياكل بيانات غير مرتبة تخزن أزواجاً من المفاتيح والقيم. كل مفتاح يجب أن يكون فريداً وغير قابل للتغيير (immutable).
# ملاحظة تقنية: المفاتيح الشائعة هي السلاسل النصية والأرقام، بينما القيم يمكن أن تكون أي نوع بيانات.
# إنشاء قاموس بسيط يمثل معلومات مستخدم
user_profile = {
"username": "coder_x", # المفتاح "username" يقابله القيمة "coder_x"
"email": "coder.x@example.com", # المفتاح "email" يقابله القيمة "coder.x@example.com"
"age": 30, # المفتاح "age" يقابله القيمة 30
"is_active": True # المفتاح "is_active" يقابله القيمة True
}
# الوصول إلى قيمة باستخدام مفتاحها
print(f"اسم المستخدم: {user_profile['username']}") # طباعة قيمة المفتاح 'username'
print(f"البريد الإلكتروني: {user_profile['email']}") # طباعة قيمة المفتاح 'email'
# استخدام .get() للوصول الآمن وتحديد قيمة افتراضية
phone = user_profile.get("phone", "غير متوفر") # إذا لم يكن المفتاح موجوداً، ستكون القيمة "غير متوفر"
print(f"رقم الهاتف: {phone}")
# الخطوة 2: إضافة وتحديث وحذف العناصر
# يمكننا تعديل القواميس بسهولة بعد إنشائها.
# إضافة عنصر جديد إلى القاموس
user_profile["city"] = "دبي" # إضافة مفتاح "city" بقيمة "دبي"
print(f"القاموس بعد إضافة المدينة: {user_profile}")
# تحديث قيمة عنصر موجود
user_profile["age"] = 31 # تحديث قيمة المفتاح "age" إلى 31
print(f"القاموس بعد تحديث العمر: {user_profile}")
# حذف عنصر باستخدام del
del user_profile["is_active"] # حذف المفتاح "is_active" وقيمته
print(f"القاموس بعد حذف حالة النشاط: {user_profile}")
# حذف عنصر باستخدام .pop() والحصول على قيمته
removed_email = user_profile.pop("email") # حذف "email" والحصول على قيمته المحذوفة
print(f"البريد الإلكتروني المحذوف: {removed_email}")
print(f"القاموس بعد حذف البريد الإلكتروني: {user_profile}")
# الخطوة 3: التكرار (Iteration) على القواميس وعمليات مفيدة أخرى
# يمكننا التكرار على مفاتيح القواميس، قيمها، أو أزواجها (مفتاح-قيمة).
# التكرار على المفاتيح (افتراضي)
print("\nمفاتيح القاموس:")
for key in user_profile: # التكرار الافتراضي يكون على المفاتيح
print(key)
# التكرار على القيم
print("\nقيم القاموس:")
for value in user_profile.values(): # استخدام .values() للحصول على القيم فقط
print(value)
# التكرار على أزواج المفتاح والقيمة
print("\nمفاتيح وقيم القاموس:")
for key, value in user_profile.items(): # استخدام .items() للحصول على أزواج (مفتاح, قيمة)
print(f"{key}: {value}")
# التحقق من وجود مفتاح
if "username" in user_profile: # التحقق مما إذا كان المفتاح "username" موجوداً
print("\nاسم المستخدم موجود في القاموس.")
# الحصول على عدد العناصر في القاموس
print(f"عدد العناصر في القاموس: {len(user_profile)}") # استخدام len() لمعرفة عدد الأزواج
النتيجة المتوقعة
عند تشغيل السكربت، ستظهر المخرجات التالية على الشاشة، موضحاً كيفية إنشاء القواميس والوصول إلى عناصرها وتعديلها والتكرار عليها:
اسم المستخدم: coder_x
البريد الإلكتروني: coder.x@example.com
رقم الهاتف: غير متوفر
القاموس بعد إضافة المدينة: {'username': 'coder_x', 'email': 'coder.x@example.com', 'age': 30, 'is_active': True, 'city': 'دبي'}
القاموس بعد تحديث العمر: {'username': 'coder_x', 'email': 'coder.x@example.com', 'age': 31, 'is_active': True, 'city': 'دبي'}
القاموس بعد حذف حالة النشاط: {'username': 'coder_x', 'email': 'coder.x@example.com', 'age': 31, 'city': 'دبي'}
البريد الإلكتروني المحذوف: coder.x@example.com
القاموس بعد حذف البريد الإلكتروني: {'username': 'coder_x', 'age': 31, 'city': 'دبي'}
مفاتيح القاموس:
username
age
city
قيم القاموس:
coder_x
31
دبي
مفاتيح وقيم القاموس:
username: coder_x
age: 31
city: دبي
اسم المستخدم موجود في القاموس.
عدد العناصر في القاموس: 3