الكلاس dict في بايثون | Python dict

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

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

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

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

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

 

طريقة تعريف dict في بايثون

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

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

التمرين  الأول

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

سنحصل على المخرجات التالية عند التنفيذ.

{}



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

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

 
 

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

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

Test.py
# alawiri يتألف من ثلاث عناصر, إسمه dict هنا قمت بتعريف
alawiri = {
    1: 'Admin',
    2: 'Editor',
    3: 'Reader'
}

# ( أي كما قمنا بتعريفه ) كما هو alawiri هنا قمنا بعرض ما يحتويه الكائن
print(alawiri)
		

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

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


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

التمرين الثالث

Test.py
# mydata يتألف من ثلاث عناصر, إسمه dict هنا قمت بتعريف
mydata = {
    'id': 1,
    'name': 'saddam',
    'phone': 771144276
}

# ( أي كما قمنا بتعريفه ) كما هو mydata هنا قمنا بعرض ما يحتويه الكائن
print(mydata)
		

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

{'id': 1, 'name': 'saddam', 'phone': 771144276}

طريقة الوصول لقيم عناصر الـ 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().

تمرين يشرح الدالة ()clear في بايثون

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

# len() الذي سترجعه الدالة data هنا قمنا بعرض عدد عناصر الكائن
print(len(data))
		

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

3

Python شرح دوال الكلاس dict في بايثون

تستخدم الدالة ()clear لحذف جميع عناصر الـdict الذي قام باستدعائها.

جسم الدالة ()clear يكون بالشكل التالي

                  dict.clear()
                


الدالة ()clear لا تقبل أي باراميتر.

الدالة ()clear لا ترجع قيمة.

مثال عملي لفهم عمل الدالة ()clear في بايثون

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

                    # data هنا قمنا بحذف جميع العناصر الموجودة في الكائن
                    data.clear()

                    # فارغ dict و الذي سيظهر كـ data هنا قمنا بعرض ما يحتويه الكائن
                    print('data contains:', data)
                  

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

data contains: {}

شرح الدالة ()copy في بايثون

ترجع نسخة من الـdict الذي قام باستدعائها.


جسم وهيكل الداله Copy () بالشكل التالي 

                  dict.copy()
                



الدالة Copy ()   لا تقبل أي باراميتر وترجع نسخة من الـdict الذي قام باستدعائها.


تمرين الدالة Copy ()  

Test.py
                    # data1 يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data1 = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # data2 في الكائن data1 هنا قمنا بنسخ عناصر الكائن
                    data2 = data1.copy()

                    # data2 و data1 هنا قمنا بعرض ما يحتويه الكائن
                    print('dict1 contains:', data1)
                    print('dict2 contains:', data2)
                  

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

dict1 contains: {1: 'Admin', 2: 'Editor', 3: 'Reader'}
dict2 contains: {1: 'Admin', 2: 'Editor', 3: 'Reader'}

شرح الدالة () popitem في بايثون

ترجع آخر عنصر تم إضافته في كائن الـdict الذي قام باستدعائها و من ثم تحذفه منه.



جسم الدالة popitem

                  dict.popitem()
                



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



أخطاء الدالة popitem

ترمي الإستثناء KeyError في حال كان الـdict فارغ.


تمرين الدالة popitem

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

                    # و عرض قيمته data هنا قمنا باستخراج آخر عنصر موجود في الكائن
                    print('Returned element:', data.popitem())

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

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

Returned element: (3, 'Reader')
Remaining elements: {1: 'Admin', 2: 'Editor'}

شرح الدالة ()pop في بايثون


تبحث في كائن الـdict الذي قام باستدعائها عن العنصر الذي يملك نفس المفتاح الذي نمرره لها مكان الباراميتر key و من ثم تحذفه منه.



جسم الدالة pop

                  dict.pop(key[, default])
                


باراميترات الدالة pop

  • مكان الباراميتر key نمرر مفتاح العنصر الذي نريد الحصول عليه.

  • الباراميتر default هو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.




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



أخطاء محتملة تحدث في  الدالة pop

في حال لم يتم العثور على المفتاح المراد حذف العنصر الذي يملكه و لم تمرر لها قيمة مكان الباراميتر default ترمي الإستثناء KeyError.


التمرين الأول الدالة pop

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

                    # و من ثم عرضناه كما هو data هنا قمنا باستخراج العنصر الذي يملك المفتاح رقم 2 من الكائن
                    print('Returned element:', data.pop(2))

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

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

Returned element: (2, 'Editor')
Remaining elements: {1: 'Admin', 3: 'Reader'}


المثال الثاني الدالة pop

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

                    # و من ثم عرضناه كما هو data هنا حاولنا استخراج العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5, سيتم إظهار خطأ عند تشغيل البرنامج
                    print('Returned element:', data.pop(5))

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

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

print('Returned element:', data.pop(5))
KeyError: 5


المثال الثالث الدالة pop

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

                    # و من ثم عرضناه كما هو data هنا حاولنا استخراج العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5 و يوجد قيمة إفتراضية, سيتم إرجاع القيمة الإفتراضية
                    print('Returned element:', data.pop(5, 'No item returned'))

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

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

Returned element: No item returned
Remaining elements: {1: 'Admin', 2: 'Editor', 3: 'Reader'}

Python شرح الدالة ()get في بايثون


الدالة ()get  تبحث في كائن الـdict الذي قام باستدعائها عن قيمة المفتاح الذي نمرره لها مكان الباراميتر key و ترجعها.



الدالة ()get  لها الشكل التالي

                  dict.get(key[, default])
                


باراميترات الدالة ()get 

  • مكان الباراميتر key نمرر مفتاح العنصر الذي نريد الحصول على قيمته.

  • الباراميتر default هو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.



 

الدالة ()get ترجع قيمة المفتاح المراد البحث عنها في الـdict في حال تم إيجاد عنصر يملك المفتاح.
ترجع None في حال لم يتم إيجاد عنصر يملك المفتاح و لم نمرر لها قيمة إفتراضية.
في حال تم تمرير قيمة إفتراضية لها و لم يتم إيجاد عنصر يملك المفتاح المراد الحصول على قيمته, فإنها ترجع القيمة الإفتراضية.


التمرين الأول الدالة ()get 

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

                    # بعدها قمنا بعرضها ,data هنا قمنا بالحصول على قيمة العنصر الذي يملك المفتاح رقم 2 من الكائن
                    print('Returned value:', data.get(2))
                  

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

Returned value: Editor


المثال الثاني الدالة ()get 

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

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5, سيتم إظهار خطأ عند تشغيل البرنامج
                    print('Returned value:', data.get(5))
                  

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

Returned value: None


التمرين الثالث الدالة ()get 

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

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5 و يوجد قيمة إفتراضية, سيتم إرجاع القيمة الإفتراضية
                    print('Returned value:', data.get(5, 'No value found with the specified key'))
                  

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

Returned value: No value found with the specified key

شرح الدالة () keys في بايثون


الدالة ()keys  ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها.

هام : مصفوفة المفاتيح التي يتم إرجاعها, هي ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.



الدالة ()keys لها الشكل التالي

                  dict.keys()
                


الدالة ()keys لا تقبل أي باراميتر.



 

الدالة ()keys  ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.

التمرين الأول الدالة ()keys 

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

                    # keys في الكائن keys() الذي سترجعه الدالة dict_keys هنا قمنا بتخزين الكائن
                    keys = data.keys()

                    # كما هو keys هنا قمنا بعرض ما يحتويه الكائن
                    print(keys)
                  

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

dict_keys([1, 2, 3])


التمرين الثاني الدالة ()keys 

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

                    # keys في الكائن keys() الذي سترجعه الدالة dict_keys هنا قمنا بتخزين الكائن
                    keys = data.keys()

                    # data هنا قمنا بحذف العنصر الذي يملك المفتاح رقم 3 من الكائن
                    data.pop(3)

                    # data هنا قمنا بإضافة عنصر جديد على الكائن
                    data[4] = 'Moderator'

                    # keys تم تطبيقها أيضاً على الكائن data كما هو. لاحظ أن جميع التغيرات التي فعلناها على الكائن keys هنا قمنا بعرض ما يحتويه الكائن
                    print(keys)
                  

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

dict_keys([1, 2, 4])

شرح الدالة () values في بايثون


الدالة ()values  ترجع مصفوفة نوعها dict_values فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها.

هام: مصفوفة القيم التي يتم إرجاعها, هي ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.



الدالة ()values لها الشكل التالي

                  dict.values()
                



الدالة ()values  لا تقبل أي باراميتر.



 

الدالة ()values  ترجع مصفوفة نوعها dict_values فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.


التمرين الأول الدالة ()values 

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

                    # values في الكائن values() الذي سترجعه الدالة dict_values هنا قمنا بتخزين الكائن
                    values = data.values()

                    # كما هو values هنا قمنا بعرض ما يحتويه الكائن
                    print(values)
                  

سنحصل على المخرجات التالية عند التنفيذ.

dict_values(['Admin', 'Editor', 'Reader'])


التمرين الثاني الدالة ()values 

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

                    # values في الكائن values() الذي سترجعه الدالة dict_values هنا قمنا بتخزين الكائن
                    values = data.values()

                    # data هنا قمنا بتغيير قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data[3] = 'Subscriber'

                    # data هنا قمنا بإضافة عنصر جديد على الكائن
                    data[4] = 'Moderator'

                    # values تم تطبيقها أيضاً على الكائن data كما هو. لاحظ أن جميع التغيرات التي فعلناها على الكائن values هنا قمنا بعرض ما يحتويه الكائن
                    print(values)
                  

سنحصل على المخرجات التالية عند عند التنفيذ.

dict_values(['Admin', 'Editor', 'Subscriber', 'Moderator'])

Python شرح الدالة ()items في بايثون


الدالة ()items ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها.

هام : مصفوفة العناصر التي يتم إرجاعها, هي ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.



الدالة ()items لها الشكل التالي 

                  dict.items()
                



الدالة ()items لا تقبل أي باراميتر.



 

الدالة ()items ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.


التمرين الأول الدالة ()items

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

                    # items في الكائن items() الذي سترجعه الدالة dict_items هنا قمنا بتخزين الكائن
                    items = data.items()

                    # كما هو items هنا قمنا بعرض ما يحتويه الكائن
                    print(items)
                  

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

dict_items([(1, 'Admin'), (2, 'Editor'), (3, 'Reader')])


المثال الثاني الدالة ()items

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

                    # items في الكائن items() الذي سترجعه الدالة dict_items هنا قمنا بتخزين الكائن
                    items = data.items()

                    # data هنا قمنا بتغيير قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data[3] = 'Subscriber'

                    # data هنا قمنا بإضافة عنصر جديد على الكائن
                    data[4] = 'Moderator'

                    # items تم تطبيقها أيضاً على الكائن data كما هو. لاحظ أن جميع التغيرات التي فعلناها على الكائن items هنا قمنا بعرض ما يحتويه الكائن
                    print(items)
                  

سنحصل على المخرجات التالية عند التنفيذ .

dict_items([(1, 'Admin'), (2, 'Editor'), (3, 'Subscriber'), (4, 'Moderator')])

Python شرح الدالة ()fromkeys في بايثون


تستخدم الدالة ()fromkeys  لإنشاء dict جديد مبني على قيم مصفوفة نمررها له.

عند إستدعاءها نمرر لها كائن يمثل مصفوفة من أي نوع مكان الباراميتر seq, عناصر هذا الكائن يتم وضعها كمفاتيح في كائن الـ dict الذي سيتم إرجاعه.
مكان الباراميتر value يمكنك تمرير القيمة الإفتراضية التي تريد وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.
و في حال لم تقم بتمرير قيمة إفتراضية مكان الباراميتر value ستكون جميع قيمه تساوي None.



الدالة ()fromkeys  لها التالي 

                  dict.fromkeys(seq[, value])
                


باراميترات الدالة ()fromkeys 

  • مكان الباراميتر seq نمرر مصفوفة من أي نوع.

  • الباراميتر value هو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية ليتم وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.



 

الدالة ()fromkeys  ترجع dict جديد.


المثال الأول الدالة ()fromkeys 

Test.py
                    # يتألف من 4 عناصر tuple هنا قمنا بتعريف
                    aTuple = (1, 2, 3, 4)

                    # None و لم نحدد قيمه الإفتراضية لذلك ستكون جميعها تساوي aTuple جديد مفاتيحه هي القيم الموجودة في الكائن dict هنا قمنا بإنشاء كائن
                    aDict = dict.fromkeys(aTuple)

                    # aDict هنا قمنا بعرض ما يحتوي الكائن
                    print(aDict)
                  

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

{1: None, 2: None, 3: None, 4: None}


التمرين الثاني الدالة ()fromkeys 

Test.py
                    # يتألف من 4 عناصر tuple هنا قمنا بتعريف
                    aTuple = (1, 2, 3, 4)

                    # 'Not Specified' و القيمة الإفتراضية لجميع عناصره هي النص aTuple جديد مفاتيحه هي القيم الموجودة في الكائن dict هنا قمنا بإنشاء كائن
                    aDict = dict.fromkeys(aTuple, 'Not Specified')

                    # aDict هنا قمنا بعرض ما يحتوي الكائن
                    print(aDict)
                  

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

{1: 'Not Specified', 2: 'Not Specified', 3: 'Not Specified', 4: 'Not Specified'}

الدالة ()setdefaul في بايثون

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

مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.
مكان الباراميتر default يمكنك تمرير القيمة الإفتراضية التي تريد وضعها للعنصر في حال تم إضافته لأنه إفتراضياً إن تم إضافة عنصر جديد ستكون قيمته None.



جسم الدالة ()setdefaul 

                  dict.setdefault(key[, default])
                


باراميترات الدالة ()setdefaul 

  • مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.

  • الباراميتر default هو باراميتر إختياري, يمكنك أن تمرر مكانه القيمة الإفتراضية التي تريد وضعها للعنصر في حال كان سيتم إضافته.



 

الدالة ()setdefaul  ترجع قيمة المفتاح الذي تم تمريره لها مكان الباراميتر key.


التمرين الأول الدالة ()setdefaul 

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

                    # بعدها قمنا بعرضها ,data هنا قمنا بالحصول على قيمة العنصر الذي يملك المفتاح رقم 3 من الكائن
                    print('Returned value:', data.setdefault(3))
                  

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

Returned value: Reader


التمرين الثاني الدالة ()setdefaul 

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

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 4 من الكائن
                    # None مفتاحه الرقم 4 و قيمته data بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 4, سيتم إضافة عنصر جديد على الكائن
                    print('Returned value:', data.setdefault(4))

                    # data هنا قمنا بعرض جميع العناصر الموجودة في الكائن
                    print('data contains:', data)
                  

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

Returned value: None
data contains: {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: None}


التمرين الثالث الدالة ()setdefaul 

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

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 4 من الكائن
                    # 'Subscriber' مفتاحه الرقم 4 و قيمته النص data بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 4, سيتم إضافة عنصر جديد على الكائن
                    print('Returned value:', data.setdefault(4, 'Subscriber'))

                    # data هنا قمنا بعرض جميع العناصر الموجودة في الكائن
                    print('data contains:', data)
                  

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

Returned value: Subscriber
data contains: {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: 'Subscriber'}

شرح الدالة ()update في بايثون


تستخدم  الدالة update لتحديث قيم عناصر الـdict الذي قام باستدعائها على أساس المفاتيح الموجودة فيه.



جسم  الدالة update بالشكل التالي 

                  dict.update([other])
                


الدالة update لها الباراميتر   other وهو باراميتر إختياري نمرر مكانه كائن dict فيه عنصر واحد أو مجموعة العناصر التي نريد تحديث قيمها في كائن الـdict الذي قام باستدعائها.

أي عنصر نمرره مكان الباراميتر other يملك مفتاح غير موجود في كائن الـdict الذي قام باستدعائها سيتم إضافته فيه . وترجع None في حال لم يحدث أي خطأ.


التمرين الأول

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

                    # data هنا قمنا بتحديث قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data.update({3: 'Subscriber'})

                    # data هنا قمنا بعرض جميع عناصر الكائن
                    print(data)
                  

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

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


التمرين الثاني

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

                    # و إضافة عنصر جديد لأنه لا يوجد عنصر يمكل مفتاح يساوي 4 data هنا قمنا بتحديث قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data.update({
                    3: 'Subscriber',
                    4: 'Moderator'
                    })

                    # data هنا قمنا بعرض جميع عناصر الكائن
                    print(data)
                  

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

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