مفهوم الكلاس 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