إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    بايثون الكلاس dict

    مفهوم الكلاس dict

    في البداية, كلمة dict إختصار لكلمة dictionary و التي تعني قاموس أو معجم.

    الـ dict عبارة عن جدول يتألف من عامودين, الأول يحتوي المفاتيح ( Keys ) و الثاني يحتوي القيم ( Values ) الخاصة بكل عنصر.

    كل عنصر يتم إضافته في dict يجب إعطاؤه قيمتين. الأولى تمثل المفتاح ( Key ) و الثانية تمثل قيمته ( Value ).

    المفاتيح تستخدم للوصول إلى القيم, لهذا لا يمكن وجود عنصرين في الـ dict عندهم نفس المفتاح. إذاً, كل Key موضوع يسمح لك بالوصول لقيمة واحدة من القيم الموجودة في الـ dict.


    طريقة تعريف dict

    لتعريف dict نستخدم الرمز { } .
    بداخل هذا الرمز يمكنك تمرير العناصر بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين.
    لا تنسى أن كل عنصر يجب أن يملك قيمتين, الأولى تمثل المفتاح و الثانية تمثل القيمة. بين كل مفتاح و قيمة نضع الرمز : .

    في المثال التالي قمنا بتعريف dict فارغ, أي لا يحتوي أي عنصر.

    المثال الأول

    Test.py
    data = {}        # data فارغ إسمه dict هنا قمنا بتعريف
    print(data)      # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    {}


    ملاحظة

    سواء كنت تقوم بتعريف dict أو set فإنك تستخدم الرمز { } كما لاحظت في المثال السابق.
    لهذا لا نلاحظ وجود أي فرق بين عرض ما يحتويه dict فارغ أو set فارغ.

    بمجرد أن تضيف عنصر واحد بين الرمز { } و تعطيه مفتاح و قيمة, عندها سيفهم مفسّر لغة بايثون أنك تقصد تعريف dict و ليس set.



    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
    المفاتيح وضعناها كأرقام, و القيم وضعناها كنصوص مع الإشارة إلى أنه يمكنك وضع أي نوع تريد.
    كما أننا قمنا تعريف كل عنصر ( أي كل مفتاح و قيمة ) على سطر منفرد لتكون قراءته أسهل فقط.

    المثال الثاني

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
    print(data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    {1: 'Admin', 2: 'Editor', 3: 'Reader'}


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
    المفاتيح وضعناها كنصوص, و القيم وضعناها كأرقام و نصوص.

    المثال الثالث

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        'id': 1,
        'name': 'Mhamad',
        'mobile': 70123456
    }
    
    # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
    print(data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    {'id': 1, 'name': 'Mhamad', 'mobile': 70123456}

    الوصول لقيم عناصر الـ dict

    للوصول لأي عنصر في الـ dict سواء للحصول على قيمته أو تغييرها أو حذفها فإننا نستخدم المفتاح الخاص بالعنصر.


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا باستخدام الرمز [] لعرض قيمة العنصر الذي يملك المفتاح رقم 1.

    المثال الأول

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # 1 هنا قمنا بطباعة قيمة العنصر الذي يملك المفتاح رقم
    print(data[1])
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Admin


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا باستخدام الدالة get() لعرض قيمة العنصر الذي يملك المفتاح رقم 1.

    المثال الثاني

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # 1 هنا قمنا بطباعة قيمة العنصر الذي يملك المفتاح رقم
    print(data.get(1))
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Admin


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا بعرض جميع المفاتيح الموضوعة فيه باستخدام الحلقة for.

    المثال الثالث

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # و من ثم سيتم طباعته key في المتغير data في كل مرة سيتم وضع مفتاح عنصر من عناصر الكائن
    for key in data:
        print(key)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    1
    2
    3


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا بعرض قيم جميع المفاتيح الموضوعة فيه باستخدام الحلقة for.

    المثال الرابع

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # و من ثم سيتم طباعة قيمة هذا المفتاح key في المتغير data في كل مرة سيتم وضع مفتاح عنصر من عناصر الكائن
    for key in data:
        print(data[key])
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Admin
    Editor
    Reader

    إضافة عناصر في الـ dict

    لإضافة عنصر جديد في الـ dict فإننا نمرر مفتاح جديد و من بعدها نضع القيمة التي يساويها.


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
    بعدها قمنا بإضافة عنصر جديد على كائن الـ dict.

    مثال

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # 'Author' مفتاحه الرقم 4, و قيمته النص ,data هنا قمنا بإضافة عنصر جديد في الكائن
    data[4] = 'Author'
    
    # data هنا قمنا بعرض ما أصبح يحتويه الكائن
    print(data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: 'Author'}

    تبديل قيم عناصر الـ dict

    لتبديل قيمة أي عنصر في الـ dict فإننا نمرر مفتاح العنصر الذي نريد تبديل قيمته و من بعدها نضع القيمة الجديدة.


    في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
    بعدها قمنا بتبديل قيمة العنصر الذي يملك مفتاح يساوي 3.

    مثال

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # 'Subscriber' وضعنا بدلاً منها النص .data هنا قمنا بتبديل قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
    data[3] = 'Subscriber'
    
    # data هنا قمنا بعرض ما أصبح يحتويه الكائن
    print(data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    {1: 'Admin', 2: 'Editor', 3: 'Subscriber'}

    حذف عناصر الـ dict بواسطة الجملة del

    الجملة del تستخدم لحذف الـ dict كما هو من الذاكرة أو لحذف عناصر محددة منه.


    في المثال التالي قمنا بتعريف dict وضعنا فيه أرقام. بعدها قمنا بحذف عنصرين منه.

    المثال الأول

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # data هنا قمنا بحذف العنصر الذي يملك المفتاح رقم 3 في الكائن
    del data[3]
    
    # data هنا قمنا بعرض ما أصبح يحتويه الكائن
    print(data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    {1: 'Admin', 2: 'Editor'}


    في المثال التالي قمنا بتعريف dict يتألف من ثلاث عناصر. بعدها قمنا بحذفه من الذاكرة. بعدها حاولنا أن نعرض ما يحتويه.

    المثال الثاني

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # كما هو من الذاكرة data هنا قمنا بحذف الكائن
    del data
    
    # و الذي في الأصل قمنا بحذفه من الذاكرة لذلك سيظهر خطأ عند التشغيل data هنا حاولنا عرض ما يحتويه الكائن
    print(data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    NameError: name 'data' is not defined

    معرفة ما إذا كان الـ dict يحتوي على مفتاح معين

    العامل in يستخدم للبحث في الـ dict عن مفتاح معين أو للمرور على قيمه عند إستخدامه في الحلقة for كما فعلنا في بعض الأمثلة السابقة.

    عند استخدام العامل in للبحث في الـ dict عن مفتاح ما فإنه يرجع True في حال تم إيجاد عنصر يملك هذا المفتاح.
    و يرجع False في حال لم يجد عنصر يملك هذا المفتاح.


    في المثال التالي إستخدمنا العامل in للبحث في الـ dict عن عنصر يملك مفتاح يساوي 2.

    مثال

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # True عن المفتاح رقم 2. إذا تم إيجاد عنصر يملك هذا المفتاح سيتم عرض القيمة data هنا سيتم البحث في الكائن
    print(2 in data)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Is Rima in the dict?
    True

    معرفة عدد عناصر الـ dict

    لمعرفة عدد عناصر كائن نوعه dict نستخدم الدالة len().

    في المثال التالي قمنا بتعريف dict يتألف من ثلاث عناصر. بعدها قمنا بطابعة عدد عناصره بواسطة الدالة len().

    مثال

    Test.py
    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
    data = {
        1: 'Admin',
        2: 'Editor',
        3: 'Reader'
    }
    
    # len() الذي سترجعه الدالة data هنا قمنا بعرض عدد عناصر الكائن
    print(len(data))
    		

    سنحصل على النتيجة التالية عند التشغيل.

    3

    دوال الكلاس dict

    إسم الدالة مع تعريفها
    clear() تستخدم لحذف جميع عناصر الـdict الذي قام باستدعائها.
    شاهد المثال »
    copy() ترجع نسخة من الـdict الذي قام باستدعائها.
    شاهد المثال »
    popitem() ترجع آخر عنصر تم إضافته في كائن الـdict الذي قام باستدعائها و من ثم تحذفه منه.
    في حال لم يتم العثور على القيمة المراد حذفها ترمي الإستثناء KeyError.
    شاهد المثال »
    pop(key[, default]) تبحث في كائن الـdict الذي قام باستدعائها عن العنصر الذي يملك نفس المفتاح الذي نمرره لها مكان الباراميتر key و من ثم تحذفه منه.
    مكان الباراميتر default يمكنك تمرير قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.
    في حال لم يتم العثور على المفتاح المراد حذف العنصر الذي يملكه و لم تمرر لها قيمة مكان الباراميتر default ترمي الإستثناء KeyError.
    شاهد المثال »
    get(key[, default]) تبحث في كائن الـdict الذي قام باستدعائها عن قيمة المفتاح الذي نمرره لها مكان الباراميتر key و ترجعها.
    مكان الباراميتر default يمكنك تمرير قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.
    في حال لم يتم العثور على المفتاح المراد حذف العنصر الذي يملكه و لم تمرر لها قيمة مكان الباراميتر default فإنها ترجع None.
    شاهد المثال »
    keys() ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها.
    ملاحظة: مصفوفة المفاتيح التي يتم إرجاعها, هي ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.
    شاهد المثال »
    values() ترجع مصفوفة نوعها dict_keys فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها.
    ملاحظة: مصفوفة القيم التي يتم إرجاعها, هي ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.
    شاهد المثال »
    items() ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها.
    ملاحظة: مصفوفة العناصر التي يتم إرجاعها, هي ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.
    شاهد المثال »
    fromkeys(seq[, value]) تستخدم لإنشاء dict جديد مبني على قيم مصفوفة نمررها له.
    عند إستدعائها نمرر لها كائن يمثل مصفوفة من أي نوع مكان الباراميتر seq, عناصر هذا الكائن يتم وضعها كمفاتيح في كائن الـ dict الذي سيتم إرجاعه.
    مكان الباراميتر value يمكنك تمرير القيمة الإفتراضية التي تريد وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.
    و في حال لم تقم بتمرير قيمة إفتراضية مكان الباراميتر value ستكون جميع قيمه تساوي None.
    شاهد المثال »
    setdefault(key[, default]) تستخدم للحصول على قيمة مفتاح موجود في كائن الـdict الذي قام باستدعائها, أو لإضافة عنصر جديد فيه مع إرجاع قيمته أيضاً.
    مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.
    مكان الباراميتر default يمكنك تمرير القيمة الإفتراضية التي تريد وضعها للعنصر في حال تم إضافته لأنه إفتراضياً إن تم إضافة عنصر جديد ستكون قيمته None.
    شاهد المثال »
    update([other]) تستخدم لتحديث قيم عناصر الـdict الذي قام باستدعائها على أساس المفاتيح الموجودة فيه.
    مكان الباراميتر other يمكننا أن نمرر كائن dict فيه عنصر واحد أو مجموعة العناصر التي نريد تحديث قيمها أو إضافتها في كائن الـdict الذي قام باستدعائها.
    أي عنصر نمرره مكان الباراميتر other يملك مفتاح غير موجود في كائن الـdict الذي قام باستدعائها سيتم إضافته فيه.
    شاهد المثال »
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب