تعرفنا حتى الآن على عدة أنواع: str وint وfloat وbool وlist. النوع الوحيد من بينها الذي يستطيع احتواء عدة قيم هو list.
الآن سنتعلم نوعًا آخر من الحاويات هو dict، اختصار dictionary، أي القاموس.
فكّر في القاموس المعتاد الذي تبحث فيه عن كلمة لتحصل على تعريفها أو ترجمتها. قواميس بايثون تعمل بفكرة مشابهة لكن بصورة أعم: تبحث باستخدام مفتاح (key) لتحصل على القيمة (value) المرتبطة به.
هذا مثال لقاموس صغير يترجم كلمات إنجليزية إلى الفرنسية:
__program_indented__
شغّل السطر السابق في الطرفية.
لا يمكن إجراء البحث بهذه الطريقة أيضًا. القاموس يسمح لك باستخدام المفتاح للحصول على قيمته، ولا يوفر بحثًا عكسيًا مباشرًا من القيمة إلى المفتاح. القاموس french لديه مفتاحان فقط: 'apple' و'box'. أما 'pomme' فهي قيمة وليست مفتاحًا. سنتعلم قريبًا لماذا لا يمكن الاعتماد على البحث العكسي بهذه الصورة وما البدائل المتاحة.
لاحظ أن french[0] وfrench['pomme'] أدّيا إلى النوع نفسه من الخطأ: KeyError. هذا يعني أن المفتاح المطلوب، سواء كان 0 أو 'pomme'، غير موجود في القاموس. ليست المشكلة أن استخدام french[0] ممنوع؛ معناه ببساطة «ابحث عن القيمة المرتبطة بالمفتاح 0»، ولم يوجد مثل هذا المفتاح. ويمكن للعدد 0 أن يكون مفتاحًا فعلًا في قاموس آخر، لأن بايثون يسمح بأنواع متعددة من المفاتيح، منها النصوص والأعداد.