View Categories

5.5. القواميس

2 دقيقة

جدول المحتويات

5.5. القواميس #

من أنواع البيانات المفيدة الأخرى المُدمجة في بايثون القاموس (انظر أنواع التعيين – dict). تُعرف القواميس أحيانًا في لغات أخرى باسم “الذاكرة الترابطية” أو “المصفوفات الترابطية”. على عكس التسلسلات، التي تُفهرس حسب نطاق من الأرقام، تُفهرس القواميس حسب المفاتيح، والتي يمكن أن تكون من أي نوع ثابت؛ يمكن أن تكون السلاسل والأرقام مفاتيح دائمًا. يمكن استخدام الصفوف كمفاتيح إذا كانت تحتوي فقط على سلاسل أو أرقام أو صفوف؛ إذا احتوى الصف على أي كائن قابل للتغيير، سواء بشكل مباشر أو غير مباشر، فلا يمكن استخدامه كمفتاح. لا يمكنك استخدام القوائم كمفاتيح، حيث يمكن تعديل القوائم في مكانها باستخدام تعيينات الفهرس، أو تعيينات الشريحة، أو طرق مثل append() و extend().

من الأفضل التفكير في القاموس كمجموعة من أزواج المفتاح: القيمة، مع اشتراط أن تكون المفاتيح فريدة (داخل قاموس واحد). يُنشئ زوج من الأقواس المعقوفة قائمة فارغة.

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

العمليات الرئيسية في القاموس هي تخزين قيمة باستخدام مفتاح ما واستخراج القيمة المُعطاة لهذا المفتاح. من الممكن أيضًا حذف زوج المفتاح:القيمة باستخدام الأمر del. إذا خزّنت قيمة باستخدام مفتاح مستخدم بالفعل، فسيتم نسيان القيمة القديمة المرتبطة بهذا المفتاح. يُعدّ استخراج قيمة باستخدام مفتاح غير موجود خطأً.

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

>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'jack': 4098, 'sape': 4139, 'guido': 4127}
>>> tel['jack']
4098
>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> list(tel)
['jack', 'guido', 'irv']
>>> sorted(tel)
['guido', 'irv', 'jack']
>>> 'guido' in tel
True
>>> 'jack' not in tel
False

يُنشئ مُنشئ dict() قواميس مباشرةً من تسلسلات أزواج المفتاح-القيمة:

>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'guido': 4127, 'jack': 4098}
بالإضافة إلى ذلك، يُمكن استخدام فهم dict لإنشاء قواميس من تعبيرات مفتاح >>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}

عندما تكون المفاتيح سلاسل نصية بسيطة، يكون ذلك أحيانًا تحديد الأزواج أسهل باستخدام وسيطات الكلمات المفتاحية:

>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'guido': 4127, 'jack': 4098}
error: Content is protected !!
Scroll to Top