10.3 عمليات القواميس
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على
- إدراك أن كائن القاموس قابل للتغيير.
- تقييم عناصر القاموس ومفاتيحها وقيمها.
- الوصول إلى عناصر القاموس وتقييمها وتعديلها.
- تعديل قاموس بإضافة عناصر إليه.
- تعديل قاموس بحذف عناصر منه.
الوصول إلى عناصر القاموس
في بايثون، يمكن الوصول إلى القيم المرتبطة بالمفاتيح في القاموس باستخدام المفاتيح كفهارس. فيما يلي طريقتان للوصول إلى عناصر القاموس في بايثون:
- ترميز الأقواس المربعة: تُستخدم الأقواس المربعة
[]مع المفتاح بداخلها للوصول إلى القيمة المرتبطة بذلك المفتاح. إذا لم يُعثر على المفتاح، يُطلَق استثناء. - تابع
get(): يُستدعى تابعget()مع المفتاح كوسيط للوصول إلى القيمة المرتبطة بذلك المفتاح. إذا لم يُعثر على المفتاح، يُرجع التابعNoneافتراضيًا، أو قيمة افتراضية محددة كوسيط ثانٍ.
مثال: في الشِفرة أدناه، يُهيَّأ كائن قاموس my_dict بالعناصر {"apple": 2, "banana": 3, "orange": 4}. تُستخدم ترميز الأقواس المربعة وتابع get() للوصول إلى القيم المرتبطة بالمفتاحين "banana" و "apple"، على التوالي. عند البحث في القاموس عن المفتاح "pineapple"، تُرجَع القيمة -1 إذ لا يوجد هذا المفتاح في القاموس.
my_dict = {"apple": 2, "banana": 3, "orange": 4}
print(my_dict["banana"]) # تطبع: 3
print(my_dict.get("apple")) # تطبع: 2
print(my_dict.get("pineapple", -1)) # تطبع: -1
مفاهيم تطبيقية
عناصر القاموس
بالاستناد إلى القاموس members = {"Jaya": "Student", "John": "TA", "Ksenia": "Staff"}، أجب عن الأسئلة التالية.
الحصول على مفاتيح وقيم القاموس
يمكن الحصول على مفاتيح القاموس وقيمه، أو كليهما معًا، باستخدام الدوال keys() و values() و items() على التوالي. تُرجع الدوال keys() و values() و items() أنواع البيانات dict_keys و dict_values و dict_items على التوالي، والتي يمكن تحويلها إلى كائن قائمة باستخدام مُنشئ القوائم list().
مثال 10.1
الحصول على مفاتيح وقيم القاموس
يُنشأ كائن قاموس بالعناصر {"a": 97, "b": 98, "c": 99}. تُستدعى الدوال keys() و values() و items() للحصول على المفاتيح والقيم والعناصر في القاموس، على التوالي. تُستخدم list() أيضًا لتحويل الإخراج إلى كائن قائمة.
dictionary_object = {"a": 97, "b": 98, "c": 99}
print(dictionary_object.keys())
print(list(dictionary_object.keys()))
print(dictionary_object.values())
print(dictionary_object.items())
ناتج الشِفرة أعلاه:
dict_keys(["a", "b", "c"])
["a", "b", "c"]
dict_values([97, 98, 99])
dict_items([("a", 97), ("b", 98), ("c", 99)])
مفاهيم تطبيقية
مفاتيح وقيم القاموس
بالاستناد إلى القاموس numbers = {"one": 1, "two": 2, "three": 3}، أجب عن الأسئلة التالية.
قابلية القاموس للتغيير
في بايثون، القاموس نوع بيانات قابل للتغيير، أي يمكن تعديل محتواه بعد إنشائه؛ إذ يمكن إضافة عناصره أو تحديثها أو حذفها في أي وقت.
لإضافة عنصر إلى قاموس، يمكن استخدام إما ترميز الأقواس المربعة أو دالّة update().
- ترميز الأقواس المربعة: عند استخدام الأقواس المربعة لإنشاء مفتاح جديد وتعيين قيمة للمفتاح، يُضاف زوج المفتاح-القيمة الجديد إلى القاموس.
my_dict = {"apple": 2, "banana": 3, "orange": 4} my_dict["pineapple"] = 1 print(my_dict) # تطبع: {"apple": 2, "banana": 3, "orange": 4, "pineapple": 1} - تابع
update(): يمكن استدعاء تابعupdate()مع أزواج مفتاح-قيمة إضافية لتحديث محتوى القاموس.my_dict = {"apple": 2, "banana": 3, "orange": 4} my_dict.update({"pineapple": 1, "cherry": 0}) print(my_dict) # تطبع: {"apple": 2, "banana": 3, "orange": 4, "pineapple": 1, "cherry": 0}
لتعديل عنصر قاموس، يمكن استخدام النهجين المذكورين أعلاه على مفتاح قاموس موجود مع القيمة المحدثة. مثال:
- ترميز الأقواس المربعة:
my_dict = {"apple": 2, "banana": 3, "orange": 4} my_dict["apple"] = 1 print(my_dict) # تطبع: {"apple": 1, "banana": 3, "orange": 4} - تابع
update():my_dict = {"apple": 2, "banana": 3, "orange": 4} my_dict.update({"apple": 1}) print(my_dict) # تطبع: {"apple": 1, "banana": 3, "orange": 4}
يمكن حذف العناصر من قاموس باستخدام الكلمة المحجوزة del أو تابع pop().
- الكلمة المحجوزة
del:my_dict = {"apple": 2, "banana": 3, "orange": 4} del my_dict["orange"] print(my_dict) # تطبع: {"apple": 2, "banana": 3} - تابع
pop():my_dict = {"apple": 2, "banana": 3, "orange": 4} deleted_value = my_dict.pop("banana") print(deleted_value) # تطبع: 3 print(my_dict) # الإخراج: {"apple": 2, "orange": 4}
مفاهيم تطبيقية
تعديل قاموس
بالاستناد إلى القاموس food = {"Coconut soup": "$15", "Butter Chicken": "$18", "Kabob": "$20"}، أجب عن الأسئلة التالية.
جرّب بنفسك
أنشئ قاموسًا للسيارات خطوة بخطوة
اتبع الخطوات أدناه لإنشاء قاموس للسيارات cars وتعديله خطوة بخطوة.
- أنشئ قاموسًا فارغًا.
- أضف زوج مفتاح-قيمة هو
"Mustang": 10. - أضف زوج مفتاح-قيمة آخر هو
"Volt": 3. - اطبع القاموس.
- عدّل القيمة المرتبطة بالمفتاح
"Mustang"لتصبح مساوية لـ2. - احذف المفتاح
"Volt"والقيمة المرتبطة به. - اطبع محتوى القاموس.
Prints {"Mustang": 2}
جرّب بنفسك
عدد الأحرف الفريدة
بالاستناد إلى سلسلة نصية، احسب عدد الأحرف الفريدة واطبعه باستخدام قاموس.
Input:
string_value = "This is a string"
Prints 10