مختصر كتابي: عمل مجموعات معقدة (Creating complex collections)
ما هو القاموس (Dictionary) في بايثون؟
القاموس (Dictionary) هو النوع الثاني من أنواع المجموعات (Collections). يعطي كل قيمة نضعها فيه علامة مميزة نبحث بها عنها، تُسمّى المفتاح (Key) أو Label، والقيمة المرتبطة بها تُسمّى القيمة (Value).
لماذا لا تكفي القائمة أحيانًا؟
- تخيّل دليل تليفونات فيه أرقام فقط بلا أسماء. هل سيفيدك في شيء؟ بالتأكيد لا.
- هذا بالضبط ما يحدث لو استخدمنا القائمة (List) في شيء أكثر تعقيدًا مثل دليل التليفون.
- في درس القائمة كانت كل القيم كروتًا ملونة متشابهة، وكل ما نحتاجه هو لون الكارت.
- أما هنا فالمعلومة من جزأين: الاسم ورقم التليفون، ونحن نبحث بالاسم ثم نرى الرقم.
تشبيه يقرّب الفكرة: القاموس ودليل التليفون
- في القاموس تبحث أولًا عن الكلمة، وبعد أن تجدها تعرف معناها، وربما طريقة نطقها.
- وفي دليل التليفون تبحث بالاسم، ثم ترى الرقم المرتبط به.
- العلامة المميزة (Label) ليس لها ترجمة صريحة، لكن تشبه ملصقًا (Sticker). في مثال الدليل: اسم الشخص هو المفتاح (Key)، ورقمه هو القيمة (Value).
بدون قاموس: متغير لكل شخص
ahmed = "01000000001"
mohamed = "01000000002"
ali = "01000000003"
sara = "01000000004"
لو عندنا ألف رقم فسنعرّف ألف متغير لكل منها قيمة، وكل واحد يحتاج مكانًا في الذاكرة باسم مختلف. هذه طريقة غير كافية وغير فعّالة. (الأرقام هنا للتوضيح فقط.)
كتابة القاموس في بايثون
phone_book = {
"ahmed": "01000000001",
"mohamed": "01000000002",
"ali": "01000000003",
"sara": "01000000004",
}
- نستخدم الأقواس المعقوصة (Curly brackets)
{ }بدل القوسين المربعين الخاصين بالقائمة. - نكتب المفتاح، ثم نقطتين فوق بعض (Colon)
:، ثم القيمة. - نضع فاصلة (Comma) بعد كل زوج، وننزل إلى السطر التالي لنكتب الزوج الذي بعده.
- عوّد نفسك على ترك المسافات لتنظيم الكود.
لاحظ الفاصلة الزائدة بعد آخر عنصر. هذا مسموح في القاموس وفي القائمة، وهو من عادات أسلوب كتابة الكود (Coding style) النظيف: من يأتي بعدك ليضيف عنصرًا جديدًا يكتبه مباشرة دون أن يضطر لإضافة الفاصلة. أما استخدام القاموس والوصول إلى بياناته فسنتعلمه في الدرس القادم.
الخلاصة
- القاموس (Dictionary) هو النوع الثاني من المجموعات، ويخزّن المعلومات على شكل مفتاح: قيمة.
- نستخدمه عندما تكون المعلومة من جزأين، مثل الاسم ورقم التليفون.
- يُكتب بين أقواس معقوصة
{ }، وبين المفتاح والقيمة:، وبين كل زوج والذي بعده,. - الفاصلة بعد آخر عنصر مسموحة وتسهّل الإضافة لاحقًا.
مصطلحات الدرس
| المصطلح | بالإنجليزية | المعنى |
|---|---|---|
| القاموس | Dictionary | مجموعة تخزّن كل قيمة مع مفتاح خاص بها |
| المفتاح / العلامة | Key / Label | ما نبحث به، مثل اسم الشخص |
| القيمة | Value | المعلومة المرتبطة بالمفتاح، مثل رقم التليفون |
| الأقواس المعقوصة | Curly brackets | الرمزان { } اللذان نكتب بينهما القاموس |
| أسلوب كتابة الكود | Coding style | عادات تجعل الكود أنظف وأسهل على المبرمج |
