الكلاس dict في بايثون
في البداية, كلمة dict إختصار لكلمة dictionary و التي تعني قاموس أو معجم.
الـ dict عبارة عن جدول يتألف من عامودين, الأول يحتوي المفاتيح ( Keys ) و الثاني يحتوي القيم ( Values ) الخاصة بكل عنصر.
كل عنصر يتم إضافته في dict يجب إعطاؤه قيمتين. الأولى تمثل المفتاح ( Key ) و الثانية تمثل قيمته ( Value ).
المفاتيح تستخدم للوصول إلى القيم, لهذا لا يمكن وجود عنصرين في الـ dict عندهم نفس المفتاح. إذاً, كل Key موضوع يسمح لك بالوصول لقيمة واحدة من القيم الموجودة في الـ dict.
طريقة تعريف dict في بايثون
لتعريف dict نستخدم الرمز { } .
بداخل هذا الرمز يمكنك تمرير العناصر بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين.
لا تنسى أن كل عنصر يجب أن يملك قيمتين, الأولى تمثل المفتاح و الثانية تمثل القيمة. بين كل مفتاح و قيمة نضع الرمز : .
في التمرين التالي قمنا بتعريف dict فارغ, أي لا يحتوي أي عنصر.
التمرين الأول
alawiri = {} # alawiri فارغ إسمه dict هنا قمت بتعريف
print(alawiri) # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
•سنحصل على المخرجات التالية عند التنفيذ.
سواء كنت تقوم بتعريف dict أو set فإنك تستخدم الرمز { } كما لاحظت في المثال السابق.
لهذا لا نلاحظ وجود أي فرق بين عرض ما يحتويه dict فارغ أو set فارغ.
بمجرد أن تضيف عنصر واحد بين الرمز { } و تعطيه مفتاح و قيمة, عندها سيفهم مفسّر لغة بايثون أنك تقصد تعريف dict و ليس set.
في التمرين التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
المفاتيح وضعناها كأرقام, و القيم وضعناها كنصوص مع الإشارة إلى أنه يمكنك وضع أي نوع تريد.
كما أننا قمنا تعريف كل عنصر ( أي كل مفتاح و قيمة ) على سطر منفرد لتكون قراءته أسهل فقط.
المثال الثاني
# alawiri يتألف من ثلاث عناصر, إسمه dict هنا قمت بتعريف
alawiri = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# ( أي كما قمنا بتعريفه ) كما هو alawiri هنا قمنا بعرض ما يحتويه الكائن
print(alawiri)
•سنحصل على النتيجة التالية عند التشغيل.
في التمرين التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
المفاتيح وضعناها كنصوص, و القيم وضعناها كأرقام و نصوص.
التمرين الثالث
# mydata يتألف من ثلاث عناصر, إسمه dict هنا قمت بتعريف
mydata = {
'id': 1,
'name': 'saddam',
'phone': 771144276
}
# ( أي كما قمنا بتعريفه ) كما هو mydata هنا قمنا بعرض ما يحتويه الكائن
print(mydata)
•سنحصل على النتيجة التالية عند التشغيل.
طريقة الوصول لقيم عناصر الـ dict في بايثون
للوصول لأي عنصر في الـ dict سواء للحصول على قيمته أو تغييرها أو حذفها فإننا نستخدم المفتاح الخاص بالعنصر.
في التمرين الاول قمنا بتعريف dict وضعنا فيه ثلاث عناصر , بعدها قمنا باستخدام الرمز [] لعرض قيمة العنصر الذي يملك المفتاح رقم 1.
التمرين الأول
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# 1 هنا قمنا بطباعة قيمة العنصر الذي يملك المفتاح رقم
print(data[1])
•سنحصل على النتيجة التالية عند التشغيل.
في التمرين الثاني قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا باستخدام الدالة get() لعرض قيمة العنصر الذي يملك المفتاح رقم 1.
التمرين الثاني
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# 1 هنا قمنا بطباعة قيمة العنصر الذي يملك المفتاح رقم
print(data.get(1))
•سنحصل على النتيجة التالية عند التشغيل.
في المثال الثالث قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا بعرض جميع المفاتيح الموضوعة فيه باستخدام الحلقة for.
التمرين الثالث
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و من ثم سيتم طباعته key في المتغير data في كل مرة سيتم وضع مفتاح عنصر من عناصر الكائن
for key in data:
print(key)
•سنحصل على النتيجة التالية عند التشغيل.
2
3
في التمرين الرابع قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا بعرض جميع المفاتيح الموضوعة فيه باستخدام الحلقة for.
التمرين الرابع
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و من ثم سيتم طباعة قيمة هذا المفتاح key في المتغير data في كل مرة سيتم وضع مفتاح عنصر من عناصر الكائن
for key in data:
print(data[key])
•سنحصل على النتيجة التالية عند التشغيل.
Editor
Reader
إضافة عناصر في الـ dict في بايثون
لإضافة عنصر جديد في الـ dict فإننا نمرر مفتاح جديد و من بعدها نضع القيمة التي يساويها.
في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
بعدها قمنا بإضافة عنصر جديد على كائن الـ dict.
مثال
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# 'Author' مفتاحه الرقم 4, و قيمته النص ,data هنا قمنا بإضافة عنصر جديد في الكائن
data[4] = 'Author'
# data هنا قمنا بعرض ما أصبح يحتويه الكائن
print(data)
•سنحصل على النتيجة التالية عند التشغيل.
تبديل قيم عناصر الـ dict في بايثون
لتبديل قيمة أي عنصر في الـ dict فإننا نمرر مفتاح العنصر الذي نريد تبديل قيمته و من بعدها نضع القيمة الجديدة.
في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
بعدها قمنا بتبديل قيمة العنصر الذي يملك مفتاح يساوي 3.
مثال
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# 'Subscriber' وضعنا بدلاً منها النص .data هنا قمنا بتبديل قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
data[3] = 'Subscriber'
# data هنا قمنا بعرض ما أصبح يحتويه الكائن
print(data)
•سنحصل على النتيجة التالية عند التشغيل.
طريقة حذف عناصر الـ dict بواسطة الجملة del في بايثون
الجملة del تستخدم لحذف الـ dict كما هو من الذاكرة أو لحذف عناصر محددة منه.
في التمرين الاول قمنا بتعريف dict وضعنا فيه أرقام. بعدها قمنا بحذف عنصرين منه.
التمرين الأول
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# data هنا قمنا بحذف العنصر الذي يملك المفتاح رقم 3 في الكائن
del data[3]
# data هنا قمنا بعرض ما أصبح يحتويه الكائن
print(data)
•سنحصل على النتيجة التالية عند التشغيل.
في التمرين الثاني قمنا بتعريف dict يتألف من ثلاث عناصر. بعدها قمنا بحذفه من الذاكرة. بعدها حاولنا أن نعرض ما يحتويه.
التمرين الثاني
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# كما هو من الذاكرة data هنا قمنا بحذف الكائن
del data
# و الذي في الأصل قمنا بحذفه من الذاكرة لذلك سيظهر خطأ عند التشغيل data هنا حاولنا عرض ما يحتويه الكائن
print(data)
•سنحصل على النتيجة التالية عند التشغيل.
طريقة معرفة ما إذا كان الـ dict يحتوي على مفتاح معين في بايثون
العامل in يستخدم للبحث في الـ dict عن مفتاح معين أو للمرور على قيمه عند إستخدامه في الحلقة for كما فعلنا في بعض الأمثلة السابقة.
عند استخدام العامل in للبحث في الـ dict عن مفتاح ما فإنه يرجع True في حال تم إيجاد عنصر يملك هذا المفتاح.
و يرجع False في حال لم يجد عنصر يملك هذا المفتاح.
في التمرين التالي إستخدمنا العامل in للبحث في الـ dict عن عنصر يملك مفتاح يساوي 2.
تمرين
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# True عن المفتاح رقم 2. إذا تم إيجاد عنصر يملك هذا المفتاح سيتم عرض القيمة data هنا سيتم البحث في الكائن
print(2 in data)
•سنحصل على النتيجة التالية عند التشغيل.
True
طريقة معرفة عدد عناصر الـ dict في بايثون
لمعرفة عدد عناصر كائن نوعه dict نستخدم الدالة len().
في التمرين التالي قمنا بتعريف dict يتألف من ثلاث عناصر. بعدها قمنا بطابعة عدد عناصره بواسطة الدالة len().
تمرين يشرح الدالة ()clear في بايثون
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# len() الذي سترجعه الدالة data هنا قمنا بعرض عدد عناصر الكائن
print(len(data))
•سنحصل على النتيجة التالية عند التشغيل.
Python شرح دوال الكلاس dict في بايثون
تستخدم الدالة ()clear لحذف جميع عناصر الـdict الذي قام باستدعائها.
جسم الدالة ()clear يكون بالشكل التالي
dict.clear()
الدالة ()clear لا تقبل أي باراميتر.
الدالة ()clear لا ترجع قيمة.
مثال عملي لفهم عمل الدالة ()clear في بايثون
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# data هنا قمنا بحذف جميع العناصر الموجودة في الكائن
data.clear()
# فارغ dict و الذي سيظهر كـ data هنا قمنا بعرض ما يحتويه الكائن
print('data contains:', data)
•سنحصل على المخرجات التالية عند التشغيل.
شرح الدالة ()copy في بايثون
ترجع نسخة من الـdict الذي قام باستدعائها.
جسم وهيكل الداله Copy () بالشكل التالي
dict.copy()
الدالة Copy () لا تقبل أي باراميتر وترجع نسخة من الـdict الذي قام باستدعائها.
تمرين الدالة Copy ()
# data1 يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data1 = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# data2 في الكائن data1 هنا قمنا بنسخ عناصر الكائن
data2 = data1.copy()
# data2 و data1 هنا قمنا بعرض ما يحتويه الكائن
print('dict1 contains:', data1)
print('dict2 contains:', data2)
•سنحصل على المخرجات التالية عند التشغيل.
dict2 contains: {1: 'Admin', 2: 'Editor', 3: 'Reader'}
شرح الدالة () popitem في بايثون
ترجع آخر عنصر تم إضافته في كائن الـdict الذي قام باستدعائها و من ثم تحذفه منه.
جسم الدالة popitem
dict.popitem()
لا تقبل أي باراميتر وترجع العنصر الذي تم حذفه من الـdict.
أخطاء الدالة popitem
ترمي الإستثناء KeyError في حال كان الـdict فارغ.
تمرين الدالة popitem
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و عرض قيمته data هنا قمنا باستخراج آخر عنصر موجود في الكائن
print('Returned element:', data.popitem())
# data هنا قمنا بعرض العناصر المتبقية في الكائن
print('Remaining elements:', data)
•سنحصل على المخرجات التالية عند التشغيل.
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
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و من ثم عرضناه كما هو data هنا قمنا باستخراج العنصر الذي يملك المفتاح رقم 2 من الكائن
print('Returned element:', data.pop(2))
# data هنا قمنا بعرض العناصر المتبقية في الكائن
print('Remaining elements:', data)
•سنحصل على المخرجات التالية عند التشغيل.
Remaining elements: {1: 'Admin', 3: 'Reader'}
المثال الثاني الدالة pop
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و من ثم عرضناه كما هو data هنا حاولنا استخراج العنصر الذي يملك المفتاح رقم 5 من الكائن
# بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5, سيتم إظهار خطأ عند تشغيل البرنامج
print('Returned element:', data.pop(5))
# data هنا قمنا بعرض العناصر المتبقية في الكائن
print('Remaining elements:', data)
•سنحصل على المخرجات التالية عند التشغيل.
KeyError: 5
المثال الثالث الدالة pop
# 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)
•سنحصل على المخرجات التالية عند التشغيل.
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
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# بعدها قمنا بعرضها ,data هنا قمنا بالحصول على قيمة العنصر الذي يملك المفتاح رقم 2 من الكائن
print('Returned value:', data.get(2))
•سنحصل على المخرجات التالية عند التشغيل.
المثال الثاني الدالة ()get
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 5 من الكائن
# بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5, سيتم إظهار خطأ عند تشغيل البرنامج
print('Returned value:', data.get(5))
•سنحصل على المخرجات التالية عند التشغيل.
التمرين الثالث الدالة ()get
# 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'))
•سنحصل على المخرجات التالية عند التشغيل.
شرح الدالة () keys في بايثون
الدالة ()keys ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها.
هام : مصفوفة المفاتيح التي يتم إرجاعها, هي ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.
الدالة ()keys لها الشكل التالي
dict.keys()
الدالة ()keys لا تقبل أي باراميتر.
الدالة ()keys ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.
التمرين الأول الدالة ()keys
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# keys في الكائن keys() الذي سترجعه الدالة dict_keys هنا قمنا بتخزين الكائن
keys = data.keys()
# كما هو keys هنا قمنا بعرض ما يحتويه الكائن
print(keys)
•سنحصل على المخرجات التالية عند التشغيل.
التمرين الثاني الدالة ()keys
# 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)
•سنحصل على المخرجات التالية عند التشغيل.
شرح الدالة () values في بايثون
الدالة ()values ترجع مصفوفة نوعها dict_values فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها.
هام: مصفوفة القيم التي يتم إرجاعها, هي ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.
الدالة ()values لها الشكل التالي
dict.values()
الدالة ()values لا تقبل أي باراميتر.
الدالة ()values ترجع مصفوفة نوعها dict_values فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.
التمرين الأول الدالة ()values
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# values في الكائن values() الذي سترجعه الدالة dict_values هنا قمنا بتخزين الكائن
values = data.values()
# كما هو values هنا قمنا بعرض ما يحتويه الكائن
print(values)
•سنحصل على المخرجات التالية عند التنفيذ.
التمرين الثاني الدالة ()values
# 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)
•سنحصل على المخرجات التالية عند عند التنفيذ.
Python شرح الدالة ()items في بايثون
الدالة ()items ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها.
هام : مصفوفة العناصر التي يتم إرجاعها, هي ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.
الدالة ()items لها الشكل التالي
dict.items()
الدالة ()items لا تقبل أي باراميتر.
الدالة ()items ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.
التمرين الأول الدالة ()items
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# items في الكائن items() الذي سترجعه الدالة dict_items هنا قمنا بتخزين الكائن
items = data.items()
# كما هو items هنا قمنا بعرض ما يحتويه الكائن
print(items)
•سنحصل على النتيجة التالية عند التشغيل.
المثال الثاني الدالة ()items
# 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)
•سنحصل على المخرجات التالية عند التنفيذ .
Python شرح الدالة ()fromkeys في بايثون
تستخدم الدالة ()fromkeys لإنشاء dict جديد مبني على قيم مصفوفة نمررها له.
عند إستدعاءها نمرر لها كائن يمثل مصفوفة من أي نوع مكان الباراميتر seq, عناصر هذا الكائن يتم وضعها كمفاتيح في كائن الـ dict الذي سيتم إرجاعه.
مكان الباراميتر value يمكنك تمرير القيمة الإفتراضية التي تريد وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.
و في حال لم تقم بتمرير قيمة إفتراضية مكان الباراميتر value ستكون جميع قيمه تساوي None.
الدالة ()fromkeys لها التالي
dict.fromkeys(seq[, value])
باراميترات الدالة ()fromkeys
مكان الباراميتر
seqنمرر مصفوفة من أي نوع.الباراميتر
valueهو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية ليتم وضعها لجميع عناصر كائن الـdictالذي سيتم إرجاعه.
الدالة ()fromkeys ترجع dict جديد.
المثال الأول الدالة ()fromkeys
# يتألف من 4 عناصر tuple هنا قمنا بتعريف
aTuple = (1, 2, 3, 4)
# None و لم نحدد قيمه الإفتراضية لذلك ستكون جميعها تساوي aTuple جديد مفاتيحه هي القيم الموجودة في الكائن dict هنا قمنا بإنشاء كائن
aDict = dict.fromkeys(aTuple)
# aDict هنا قمنا بعرض ما يحتوي الكائن
print(aDict)
•سنحصل على النتيجة التالية عند التشغيل.
التمرين الثاني الدالة ()fromkeys
# يتألف من 4 عناصر tuple هنا قمنا بتعريف
aTuple = (1, 2, 3, 4)
# 'Not Specified' و القيمة الإفتراضية لجميع عناصره هي النص aTuple جديد مفاتيحه هي القيم الموجودة في الكائن dict هنا قمنا بإنشاء كائن
aDict = dict.fromkeys(aTuple, 'Not Specified')
# aDict هنا قمنا بعرض ما يحتوي الكائن
print(aDict)
•سنحصل على النتيجة التالية عند التشغيل.
الدالة ()setdefaul في بايثون
تستخدم الدالة ()setdefaul للحصول على قيمة مفتاح موجود في كائن الـdict الذي قام باستدعائها, أو لإضافة عنصر جديد فيه مع إرجاع قيمته أيضاً.
مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.
مكان الباراميتر default يمكنك تمرير القيمة الإفتراضية التي تريد وضعها للعنصر في حال تم إضافته لأنه إفتراضياً إن تم إضافة عنصر جديد ستكون قيمته None.
جسم الدالة ()setdefaul
dict.setdefault(key[, default])
باراميترات الدالة ()setdefaul
مكان الباراميتر
keyنمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdictسيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.الباراميتر
defaultهو باراميتر إختياري, يمكنك أن تمرر مكانه القيمة الإفتراضية التي تريد وضعها للعنصر في حال كان سيتم إضافته.
الدالة ()setdefaul ترجع قيمة المفتاح الذي تم تمريره لها مكان الباراميتر key.
التمرين الأول الدالة ()setdefaul
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# بعدها قمنا بعرضها ,data هنا قمنا بالحصول على قيمة العنصر الذي يملك المفتاح رقم 3 من الكائن
print('Returned value:', data.setdefault(3))
•سنحصل على النتيجة التالية عند التشغيل.
التمرين الثاني الدالة ()setdefaul
# 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)
•سنحصل على النتيجة التالية عند التشغيل.
data contains: {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: None}
التمرين الثالث الدالة ()setdefaul
# 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)
•سنحصل على النتيجة التالية عند التشغيل.
data contains: {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: 'Subscriber'}
شرح الدالة ()update في بايثون
تستخدم الدالة update لتحديث قيم عناصر الـdict الذي قام باستدعائها على أساس المفاتيح الموجودة فيه.
جسم الدالة update بالشكل التالي
dict.update([other])
الدالة update لها الباراميتر other وهو باراميتر إختياري نمرر مكانه كائن dict فيه عنصر واحد أو مجموعة العناصر التي نريد تحديث قيمها في كائن الـdict الذي قام باستدعائها.
أي عنصر نمرره مكان الباراميتر other يملك مفتاح غير موجود في كائن الـdict الذي قام باستدعائها سيتم إضافته فيه . وترجع None في حال لم يحدث أي خطأ.
التمرين الأول
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# data هنا قمنا بتحديث قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
data.update({3: 'Subscriber'})
# data هنا قمنا بعرض جميع عناصر الكائن
print(data)
•سنحصل على النتيجة التالية عند التشغيل.
التمرين الثاني
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
1: 'Admin',
2: 'Editor',
3: 'Reader'
}
# و إضافة عنصر جديد لأنه لا يوجد عنصر يمكل مفتاح يساوي 4 data هنا قمنا بتحديث قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
data.update({
3: 'Subscriber',
4: 'Moderator'
})
# data هنا قمنا بعرض جميع عناصر الكائن
print(data)
•سنحصل على النتيجة التالية عند التشغيل.