القواميس في لغة البايثون

تعتبر القواميس أحد المصفوفات, وفي الأصل مشابهة لما تم شرحه في الدروس السابقة, ويمكن إضافة أي عدد من العناصر للقواميس, لكن يجب أن يتكون كل عنصر من قيمتين, والقيمة الأولى هي مفتاح أي keyوالقيمة الثانية للعنصر هي قيمة المفتاح أي value
ملحوظة لا يمكن تكرار نفس المفاتيح في نفس القاموس
وفي ما يلي نموذج لكيفية إنشاء القواميس والتعرف على عناصرها المختلفة باستخدام الحلقات التكرارية
test_dict_1 = {'year ':'2021', 'month ':'9', 'day ':'27'}
print(test_dict_1)
print('=================================')
for i in test_dict_1:
print(i)
print(test_dict_1[i])
print('--------------------------------')
وتكون نتيجة التنفيذ هي على النحو التالي
{'year ': '2021', 'month ': '9', 'day ': '27'}
=================================
year
2021
--------------------------------
month
9
--------------------------------
day
27
--------------------------------
كما نرى قمنا بالفصل بين المفتاح وقيمته بعلامة : كما قمنا بالفصل بين العناصر بعلامة ,
التعرف على قيم المفاتيح أو value
في المثال السابق إستخدمنا صيغة مشابهة ل dict_obj[key] للحصول على قيم المفاتيح, وبدلا عن هذه الطريقة يمكننا إستخدام خاصية get للحصول على القيم المختلفة
وإليكم المثال التالي
test_dict_1 = {'YEAR ':'2021', 'MONTH ':'9', 'DAY ':'27'}
print(test_dict_1)
print('=================================')
print(test_dict_1['YEAR '])
#print(test_dict_1['YEARS']) # إذا تم تنفيذ هذا السطر فسوف نحصل على رسالة خطأ لعدم وجود المفتاح في القاموس
print('---------------------------------')
print(test_dict_1.get('YEAR '))
print(test_dict_1.get('YEARS'))
print('---------------------------------')
print(test_dict_1.get('YEAR ','NOT FOUND'))
print(test_dict_1.get('YEARS','NOT FOUND'))
وتكون نتيجة التنفيذ هي على النحو التالي
{'YEAR ': '2021', 'MONTH ': '9', 'DAY ': '27'}
=================================
2021
---------------------------------
2021
None
---------------------------------
2021
NOT FOUND
كما نرى, عند التعرف على القيم, إذا إستخدمنا صية dict_obj[key] وكان المفتاح غير موجود في القاموس تظهر لنا رسالة خطأ. لكن إذا إستخدمنا خاصية get فلا تظهر لنا رسالة خطأ حتى وإن كان المفتاح غير موجود
وأيضا عند إستخدام خاصية get ولم يتم الحصول على اسم المفتاح, فيمكننا إضافة أي قيمة أخرى, وفي مثالنا هذا أضفنا كلمة NOT FOUND, وسوف يتم إرجاع هذه القيمة بدلا عن قيمة المفتاح الذي لم يتم الحصول عليه.
إضافة العناصر
لإضافة العناصر للقواميس يمكننا كتابتها على النحو التالي
test_dict_1 = {}
print(test_dict_1)
print('=================================')
test_dict_1['YEAR '] = '2021'
test_dict_1['MONTH '] = '9'
test_dict_1['DAY '] = '27'
print(test_dict_1)
وتكون نتيجة التنفيذ هي على النحو التالي
{}
=================================
{'YEAR ': '2021', 'MONTH ': '9', 'DAY ': '27'}
كما نرى في هذا المثال قمنا بإنشاء قاموس فارغ ثم قمنا بإضافة عدة عناصر مختلفة
أما إذا أردنا حذف العناصر من القاموس فنستخدم خاصية del
وذلك كما هو موضح في المثال التالي
test_dict_1 = {'YEAR ':'2021', 'MONTH ':'9', 'DAY ':'27'}
print(test_dict_1)
print('=================================')
del test_dict_1['DAY ']
print(test_dict_1)
وتكون نتيجة التنفيذ هي على النحو التالي
{'YEAR ': '2021', 'MONTH ': '9', 'DAY ': '27'}
=================================
{'YEAR ': '2021', 'MONTH ': '9'}
كما نرى لحذف العناصر نقوم بتعيين المفتاح المراد حذفه بعد خاصية del
أما إذا أردنا الحصول على كافة المفاتيح فنستخدم خاصية keys وللحصول على كافة القيم نستخدم خاصية values وسوف يتم إرجاع النتيجة في شكل قائمة
وإليكم المثال التالي
test_dict_1 = {'YEAR ':'2021', 'MONTH ':'9', 'DAY ':'27'}
print(test_dict_1)
print('=================================')
print(test_dict_1.keys())
print(test_dict_1.values())
{'YEAR ': '2021', 'MONTH ': '9', 'DAY ': '27'}
=================================
dict_keys(['YEAR ', 'MONTH ', 'DAY '])
dict_values(['2021', '9', '27'])
أما إذا أردنا الحصول على المفاتيح والقيم معا فنستخدم خاصية items وذلك كما هو موضح في المثال التالي
test_dict_1 = {'YEAR ':'2021', 'MONTH ':'9', 'DAY ':'27'}
print(test_dict_1)
print('=================================')
for key, value in test_dict_1.items():
print(key, value)
وتكون نتيجة التنفيذ هي على النحو التالي
{'YEAR ': '2021', 'MONTH ': '9', 'DAY ': '27'}
=================================
YEAR 2021
MONTH 9
DAY 27
أما إذا أردنا التحقق من وجود مفتاح ما في القاموس فنستخدم خاصية in وذلك كما هو موضح في المثال التالي
test_dict_1 = {'YEAR ':'2021', 'MONTH ':'9', 'DAY ':'27'}
print(test_dict_1)
print('=================================')
print('YEAR ' in test_dict_1)
print('YEARS' in test_dict_1)
وتكون نتيجة التنفيذ هي على النحو التالي
{'YEAR ': '2021', 'MONTH ': '9', 'DAY ': '27'}
=================================
True
False
كما نرى عند الحصول على اسم المفتاح يتم إرجاع القيمة True وإلا فيتم إرجاع القيمة False