امتحان Python 3: القوائم، المجموعات، والقواميس (10 تمارين مركبة)
امتحان Python 3: هياكل البيانات
اختبر مهاراتك في تنظيم البيانات باستخدام القوائم، المجموعات، القواميس، والصفوف.
تمرين 1
القوائم (Lists)
تعامل مع القائمة:
- أنشئ قائمة `fruits = ["apple", "banana", "cherry"]`.
- اطبع العنصر الثاني.
- غير قيمة "apple" إلى "kiwi".
- أضف "orange" إلى نهاية القائمة (`append`).
الحل
fruits = ["apple", "banana", "cherry"]
print(fruits[1]) # banana
fruits[0] = "kiwi"
fruits.append("orange")
print(fruits)
تمرين 2
تقطيع القوائم (List Slicing)
استخرج جزءاً من القائمة:
- لديك `fruits = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]`.
- اطبع العناصر من الثالث إلى الخامس (تذكر أن الفهرس يبدأ من 0).
الحل
fruits = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(fruits[2:5]) # ['cherry', 'orange', 'kiwi']
تمرين 3
الصفوف (Tuples)
تعامل مع الصفوف (غير قابلة للتعديل):
- أنشئ صفاً `fruits = ("apple", "banana", "cherry")`.
- اطبع العنصر الأول.
- حاول تغيير العنصر الأول واشرح النتيجة في تعليق.
الحل
fruits = ("apple", "banana", "cherry")
print(fruits[0])
# fruits[0] = "kiwi"
# سيحدث خطأ (TypeError) لأن الصفوف (tuples) غير قابلة للتعديل (immutable).
تمرين 4
المجموعات (Sets)
تعامل مع المجموعات (بدون ترتيب أو تكرار):
- أنشئ مجموعة `fruits = {"apple", "banana", "cherry"}`.
- أضف "orange" للمجموعة (`add`).
- أضف "apple" مرة أخرى واطبع المجموعة لتلاحظ عدم التكرار.
الحل
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
fruits.add("apple") # لن يتم إضافته لأنه موجود
print(fruits)
تمرين 5
القواميس (Dictionaries)
خزن بيانات مفتاح-قيمة:
- أنشئ قاموس `car = {"brand": "Ford", "model": "Mustang", "year": 1964}`.
- اطبع قيمة "model".
- غير قيمة "year" إلى 2020.
- أضف خاصية "color" بقيمة "red".
الحل
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
print(car.get("model"))
car["year"] = 2020
car["color"] = "red"
print(car)
تمرين 6
التكرار عبر القاموس (Looping Dictionaries)
اطبع محتويات القاموس:
- استخدم حلقة `for` لطباعة جميع المفاتيح والقيم في قاموس `car`.
- استخدم `car.items()`.
الحل
for key, value in car.items():
print(key, value)
تمرين 7
القواميس المتداخلة (Nested Dictionaries)
أنشئ هيكلاً معقداً:
- أنشئ قاموس `myfamily`.
- يحتوي على مفتاحين "child1" و "child2".
- كل طفل هو قاموس يحتوي على "name" و "year".
- اطبع اسم الطفل الثاني.
الحل
myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
}
}
print(myfamily["child2"]["name"])
تمرين 8
حذف العناصر (Removing Items)
احذف بيانات من القائمة:
- لديك `fruits = ["apple", "banana", "cherry"]`.
- احذف "banana" باستخدام `remove`.
- احذف العنصر الأخير باستخدام `pop`.
الحل
fruits = ["apple", "banana", "cherry"]
fruits.remove("banana")
fruits.pop()
print(fruits)
تمرين 9
فهم القوائم (List Comprehension)
أنشئ قائمة بطريقة مختصرة:
- لديك `fruits = ["apple", "banana", "cherry", "kiwi", "mango"]`.
- أنشئ قائمة جديدة `newlist` تحتوي فقط على الفواكه التي بها حرف "a".
- استخدم List Comprehension (سطر واحد).
الحل
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
تمرين 10
نسخ القوائم (Copy Lists)
انسخ القائمة بشكل صحيح:
- لديك `thislist = ["apple", "banana"]`.
- أنشئ نسخة منها `mylist` باستخدام `copy()`.
- تأكد أن تعديل النسخة لا يؤثر على الأصل.
الحل
thislist = ["apple", "banana"]
mylist = thislist.copy()
print(mylist)