استخدام القاموس في لغة البايثون Python

كل مفتاح مفصول عن القيمة الخاصة به بالعلامة (:) والبنود تكون مفصولة بالفواصل وكافة الأشياء تكون محصورة بين أقواس مجعدة. القاموس الفارغ الذي لا يحوي أية بنود أو مكونات يكتب على شكل قوسين مجعدين {} .
تكون المفاتيح فريدة في حالة القاموس لكن القيم ليست كذلك كما أن القيم في القاموس بمكن أن تكون من ي نموذج لكن المفاتيح يجب ان تكون من البيانات غير القابلة للتغيير مثل السلاسل والأرقام والصفوف.


إسناد القيم في القاموس

للوصول إلى عناصر القاموس يمكن استخدام الأقواس المربعة جنباً إلى جنب مع مفتاح للحصول على قيمتها كما في المثال التالي:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];

print "dict['Age']: ", dict['Age'];

فتظهر النتيجة التالية

dict['Name']:  Zara
dict['Age']:  7

عند محاولة إسناد البيانات مع مفتاح ليس جزءاً من القاموس عندها يحصل الخطأ التالي:

#!/usr/bin/python

dict={'Name':'Zara','Age':7,'Class':'First'};

print"dict['Alice']: ",dict['Alice'];

فتظهر النتيجة التالية

dict['Zara']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

تحديث القاموس

يمكن تحديث القاموس بإضافة إدخال جديد او زوج قيمة – مفتاح او تعديل إدخال موجود أو حذف إدخال موجود كما هو مبين في المثال التالي:

#!/usr/bin/python

dict={'Name':'Zara','Age':7,'Class':'First'};

dict['Age']=8;# update existing entry
dict['School']="DPS School";# Add new entry

print"dict['Age']: ",dict['Age'];
print"dict['School']: ",dict['School'];
عندها تظهر النتيجة التالية

dict['Age']:  8
dict['School']:  DPS School

حذف عناصر القاموس

يمكن إزالة العناصر الفردية من القاموس أو مسح محتوياته بشكل كامل كما يمكن إزالة القاموس بأكمله بعملية مفردة.
يمكن استخدام التعليمة del لإزالة القاموس بأكمله كما في المثال التالي:

#!/usr/bin/python

dict={'Name':'Zara','Age':7,'Class':'First'};

deldict['Name'];# remove entry with key 'Name'
dict.clear();# remove all entries in dict
deldict;# delete entire dictionary

print"dict['Age']: ",dict['Age'];
print"dict['School']: ",dict['School'];

فتظهر النتيجة التالية

dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

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

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

مثال

#!/usr/bin/python

dict={'Name':'Zara','Age':7,'Name':'Manni'};

print"dict['Name']: ",dict['Name'];

فتظهر النتيجة التالية

dict['Name']:  Manni

النقطة الثانية: يجب ان تكون المفاتيح غير قابلة للتعديل أي يجب ان تكون سلاسل أو أرقام أو صفوف ولكن شيئ مثل [‘key’] غير مسموح. كم في المثال التالي:

#!/usr/bin/python

dict={['Name']:'Zara','Age':7};

print"dict['Name']: ",dict['Name'];

فتظهر النتيجة التالية

Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable

الطرق والتوابع المبنية

التوابع

الرقم التسلسلي التابع والوصف
1 cmp(dict1, dict2) يقارن بين عناصر قاموسين.
2 len(dict) يعطي الطول الكلي للقاموس.
3 str(dict) يعطي سلسلة قابلة للطباعة تمثل القاموس.
4 type(variable) تعطي نموذج المتغيرات المدخلة.

الطرق

الرقم التسلسلي الطريقة والوصف
1 dict.clear() تزيل كافة عناصر القاموس
2 dict.copy() تعيد نسخة من القاموس
3 dict.fromkeys() تنشئ قاموساً جديداً مع مفاتيح من السلسلة وتسند القيم.
4 dict.get(key, default=None) تعيد القيمة أو الافتراضي إذا كان المفتاح غير موجود في القاموس
5 dict.has_key(key) تعيد القيمة صح إذا كان المفتاج ضمن القاموس والقيمة خطأ فيما عدا ذلك.
6 dict.items() تعيد قائمة من القواميس وأزواج (قيمة , مفتاح)
7 dict.keys()تعيد قائمة بمفاتيح القاموس
8 dict.setdefault(key, default=None)تعيد قائمة من مفاتيح القاموس شبيهة ب get() ولكنها تعطي dict[key]=default إذا كان المفتاح غير موجوداً في القاموس
9 dict.update(dict2) تضيف أزواج قيم – مفتاح إلى القاموس.
10 dict.values() تعيد قائمة من قيم القاموس