البرمجة بلغة بايثون (الفصل الرابع)
- أبريل 12, 2023
- تم النشر بواسطة: كود خانة
- الفئة: البرمجة بلغة بايثون

القواميس (Dictionaries):
القاموس او الفهرس (dictionary) هو احد انواع البيانات في لغة بايثون يستخدم بشكل واسع وذلك لميزاته المتعددة والتي سنتعرف عليها في هذا الدرس ، وتستخدم القواميس الاقواس المذنبة { } وتأخذ مفتاح وقيمة key and value يفصل بينهما نقطتين :
مثال: متغير من نوع (قاموس) اسمه الطلاب students يحتوي على اسم كل طالب ودرجته في الامتحان
1 2 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92} print(students) |
1 |
{'Ahmed': 87, 'Waleed': 69, 'Hesham': 92} |
وبأمكانك تخيل شكل قاموس الطلاب students مثل الجدول التالي ( الاسم هو المفتاح والدرجة هي القيمة )
الان لو اردنا طباعة درجة الطالب هشام فقط نقوم بكتابة اسم المتغير students ثم نفتح قوسين مربعة ونكتب بداخلها اسم Hesham وسنحصل في الناتج على درجة هشام
1 |
students["Hesham"] |
1 |
92 |
وهذا الشيء مفيد جدا خاصة في المتغيرات التي تحتوي على عدد كبير جدا من العناصر ولفهم فائدة القواميس اكثر لنفترض اننا نريد انشاء متغير يحتوي على اسماء الدول وعواصمها بأستخدام القوائم وليس القواميس
في حالة استخدام القوائم سنحتاج الى قائمتين الاولى هي اسماء الدول countries والثانية هي اسماء العواصم capitals
1 2 |
countries = ["Iraq", "Egypt", "Jordan", "Saudi Arabia"] capitals = ["Baghdad", "Cairo", "Amman", "Riyadh"] |
في القوائم من اجل معرفة عاصمة مصر نحتاج الى معرفة اندكس مصر في قائمة الدول ونخزنه في متغير من اجل استخدامه لاحقا في معرفة عاصمة مصر
1 2 |
eg_ind = countries.index("Egypt") eg_ind |
1 |
1 |
الان سنستخدم اندكس مصر eg_ind في قائمة العواصم capitals من اجل معرفة عاصمة مصر
1 |
capitals[eg_ind] |
1 |
Cairo |
في الحقيقة بأمكاننا فعل ذلك بأستخدام القوائم لكن طريقة القيام بذلك مطولة في حين بأمكاننا فعل ذلك وبكل سهولة بأستخدام قاموس واحد مفاتيحه اسماء الدول وقيمه العواصم وهذا ما سنفعله في التمرين التالي
ملاحظة: بعض المبرمجين يستخدم مصطلح قاموس والبعض الاخر يستخدم مصطلح فهرس وكلاهما نفس الشيء ( كلاهما dictionary ) ويرمز للقاموس او الفهرس في لغة بايثون اختصاراً بـ dict
مساحة تجريبية:
تمرين برمجي (1):
في هذا التمرين المطلوب منك هو التالي:
1- قم بأنشاء متغير من نوع (قاموس) اسمه countries مفاتحه اسماء الدول المذكورة في المثال السابق
Iraq & Egypt & Jordan & Saudi Arabia
وقيمه هي عواصم هذه الدول
Baghdad & Cairo & Amman & Riyadh
2- قم بطباعة عاصمة مصر
#1 Create countries dictionary
countries = __________________
#2 Print out the capital of egypt
print(__________________)
#1 Create countries dictionary
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"}
#2 Print out the capital of egypt
print(countries["Egypt"])
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
الوصول الى العناصر في القاموس:
لقد تعلمنا في هذا الدرس انه من اجل الوصول الى اي قيمة في القاموس نقوم بكتابة اسم القاموس ثم نستخدم الاقواس المربعة ثم نكتب مفتاح القيمة التي نريد الوصول اليها مثلا
1 2 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92} students["Waleed"] |
1 |
69 |
لكن ماذا لو اردنا طباعة مفاتيح القاموس وليس القيم لأي سبب كان مثلا لمعرفة اسماء الطلاب الموجودين لدينا في القاموس او لديك قاموس كبير جدا يحتوي على اسماء المنتجات كمفاتيح واسعار المنتجات كقيم وتريد معرفة اسماء المنتجات
لطباعة المفاتيح في القاموس نستخدم المثود ()keys وستعطينا اسماء المفاتيح الموجودة لدينا في القاموس مثلاً
1 2 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92} students.keys() |
1 |
dict_keys(['Ahmed', 'Waleed', 'Hesham']) |
وايضا بأمكاننا طباعة جميع القيم للقاموس بأستخدام المثود ()values وسنحصل في الناتج على قيم القاموس فقط مثلاً
1 2 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92} students.values() |
1 |
dict_values([87, 69, 92]) |
تمرين برمجي (2):
لدينا القاموس التالي الذي يحتوي على اسماء بعض الدول العربية وعواصمها
1 |
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"} |
والمطلوب منك في هذا التمرين هو القيام بالتالي:
1- اطبع اسماء جميع الدول بأستخدام المثود ()keys
2- اطبع اسماء جميع العواصم بأستخدام المثود ()values
3- اطبع عاصمة العراق فقط
# countries dictionary
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"}
#1 Print out the names of countries
print(__________________)
#2 Print out the names of capitals
print(__________________)
#3 Print out the capital of iraq
print(__________________)
# countries dictionary
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"}
#1 Print out the names of countries
print(countries.keys())
#2 Print out the names of capitals
print(countries.values())
#3 Print out the capital of iraq
print(countries["Iraq"])
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
معلومات هامة عن الدكشنري:
- يجب ان تكون قيمة المفاتيح فريدة يعني غير مكررة لانه في حال تكرار المفاتيح سيتم اخذ قيمة واحدة من القيم المكررة مثلا في حال تكرار اسم الطالب احمد ودرجته سنحصل على اخر احمد واخر درجة فقط حتى لو كان مكرر عدة مرات
1 2 3 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92, "Ahmed": 99} students |
1 |
{'Ahmed': 99, 'Waleed': 69, 'Hesham': 92} |
- المفاتيح في القاموس يجب ان تكون من نوع immutable مثلا عدد صحيح او نص او منطقي او True او False ولا يمكن ان يكون مفتاح القاموس من نوع mutable مثل القوائم
المثال التالي صحيح
1 2 |
x = {7: 'hi', False: 'no', 'python': 3.6} x |
1 |
{7: 'hi', False: 'no', 'python': 3.6} |
المثال التالي غير صحيح
1 2 |
y = {[5, 'hi'] : 'hello'} y |
1 |
TypeError: unhashable type: 'list' |
- من اجل معرفة احد المفاتيح هل هو موجود في القاموس او لا نستخدم in فأذا كان موجود سنحصل في الناتج على True واذا كان غير موجود سنحصل على False
1 2 3 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92} print("Ahmed" in students) print("Khaled" in students) |
1 2 |
True False |
- القواميس لا تخزن القيم على التسلسل ولذلك ترى في بعض الاحيان عند تنفيذ الكود تسلسل عناصر القاموس تتغير ولذلك لا يتم الاعتماد على الاندكس في القواميس
- وللتذكير مرة اخرى القوائم يتم الوصول الى عناصرها بأستخدام الاندكس اما القواميس فيتم الوصول اليها بأستخدام المفاتيح الفريدة
التلاعب بالقواميس (اضافة وتعديل وحذف):
- الاضافة: من اجل اضافة قيمة جديدة الى القاموس نقوم بكتابة اسم القاموس ونستخدم اقواس مربعة [ ] نضع بداخلها مفتاح هذه القيمة ثم نكتب القيمة التي نريد اضافتها مثلاً نريد اضافة طالبة اسمها Sara ودرجتها 77
1 2 3 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92} students["Sara"] = 77 students |
1 |
{'Ahmed': 87, 'Waleed': 69, 'Hesham': 92, 'Sara': 77} |
- التعديل: من اجل التعديل على قيمة في القاموس كل ماعلينا فعله هو ذكر اسم القاموس والمفتاح ثم كتابة القيمة الجديدة
مثلاً نريد تغيير درجة سارة التي اضفناها مؤخراً الى 80
1 2 3 4 |
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92 , "Sara" : 77} students["Sara"] = 80 students |
1 |
{'Ahmed': 87, 'Waleed': 69, 'Hesham': 92, 'Sara': 80} |
- الحذف: من اجل حذف اي قيمة في القاموس نستخدم وظيفة الحذف التي تعلمناها سابقا وهي ()del ثم نحدد اسم القاموس ونكتب مفتاح القيمة وسيتم حذف القيمة وحذف المفتاح ايضا ولكن انتبه في حال لم تحدد اسم المفتاح سيتم حذف القاموس بالكامل
مثلا نريد حذف سارة ودرجتها
1 2 |
del(students["Sara"]) students |
1 |
{'Ahmed': 87, 'Hesham': 92, 'Waleed': 69} |
تمرين برمجي (3):
لدينا القاموس التالي الذي يحتوي على اسماء بعض الدول العربية وعواصمها
1 2 |
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"} |
1- قم بالتأكد هل يوجد دولة Lebanon في القاموس countries بأستخدام in
2- أضف دولة Lebanon الى القاموس وعاصمتها Beirut
3- احذف دولة Lebanon من القاموس
4- غير عاصمة العراق (مدينة Basra بدلاً من مدينة Baghdad)
# Countries dictionary
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"}
#1 Check if Lebanon exist in countries
print(_________ __ _________)
#2 Add Lebanon : Beirut to countries
countries[_________] = ________
print(countries)
#3 Delete Lebanon from countries
___(countries[_________])
print(countries)
#4 Edit Iraq capital (Basra instead of Baghdad)
countries[______] = _______
print(countries)
# Countries dictionary
countries = {"Iraq" : "Baghdad", "Egypt" : "Cairo", "Jordan" : "Amman", "Saudi Arabia" : "Riyadh"}
#1 Check if Lebanon exist in countries
print("Lebanon" in countries)
#2 Add Lebanon : Beirut to countries
countries["Lebanon"] = "Beirut"
print(countries)
#3 Delete Lebanon from countries
del(countries["Lebanon"])
print(countries)
#4 Edit Iraq capital (Basra instead of Baghdad)
countries["Iraq"] = "Basra"
print(countries)
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
تمرين برمجي (4):
من مميزات القواميس اننا نستطيع كتابة قاموس داخل قاموس وهذا ما سنتعلمه في هذا التمرين
افترض ان لدينا طالب جديد اسمه خالد ولدينا درجات خالد في الرياضيات وفي اللغة الانجليزية ، وهذه الدرجات موجودة في القاموس التالي
1 |
kh_grades = {"Math": 86, "English": 74} |
والمطلوب منك في هذا التمرين هو القيام بالتالي:
1- قم بأضافة طالب جديد اسمه Khaled الى قاموس الطلاب ودرجاته هي القاموس kh_grades
2- قم بطباعة درجة خالد في اللغة الانجليزية
# Students dictionary
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92}
# Khaled grades
kh_grades = {"Math": 86, "English": 74}
#1 Add Khaled and his grades to students
students[________] = _________
# Print out students
print(students)
#2 Print out Khaled grade in English
print(_____________________________)
# Students dictionary
students = {"Ahmed" : 87, "Waleed" : 69, "Hesham" : 92}
# Khaled grades
kh_grades = {"Math": 86, "English": 74}
#1 Add Khaled and his grades to students
students["Khaled"] = kh_grades
# Print out students
print(students)
#2 Print out Khaled grade in English
print(students["Khaled"]["English"])
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
– بما ان درجات خالد موجودة في قاموس داخل قاموس اخر ستحتاج الى كتابة مفتاحين الاول هو Khaled والثاني هو English وبهذا الشكل [][]students
الصفوف (Tuples):
الصفوف او ما يعرف باللغة الانجليزية بأسم توبل ()tuple هي احد انواع البيانات في لغة بايثون تشبه القوائم كثيرا من حيث الاندكس والوظائف وطريقة العمل وامكانية احتوائها على انواع البيانات الاخرى ولكن فرقها عن القوائم انها immutable اي بمعنى لا يمكن تغيير عناصرها مما يجعلنا نثق في الصفوف tuples في بعض البرامج عندما نحتاج الى متغيرات تأخذ قيم متعددة لايمكن تغيير قيمها وتستخدم التوبلز الاقواس الدائرية ( )
وبأمكاننا انشاء الصفوف بأستخدام الاقواس الدائرية ( ) ثم كتابة قيم الصف داخل الاقواس
1 2 3 |
# We can create a tuple in this way x = (3, "hello", True, 8.65) x |
1 |
(3, 'hello', True, 8.65) |
او بأمكاننا انشاء الصفوف بأستخدام الوظيفة ()tuple ونضع قيم الصف داخل اقواس مربعة
1 2 3 |
# Or this way x = tuple([3, "hello", True, 8.65]) x |
1 |
(3, 'hello', True, 8.65) |
طباعة نوع البيانات في المتغير x
1 |
type(x) |
1 |
tuple |
في الصفوف بأمكاننا الوصول الى العناصر بأستخدام الاندكس مما يمكننا من طباعة اي عنصر او مجموعة عناصر ، في الصفوف ايضاً بأمكاننا استخدام العديد من انواع الوظائف (مثود method) مثل ايجاد اندكس عنصر معين او عدد مرات ظهور عنصر معين
طباعة عنصر محدد في الصف
1 2 |
x = (3, 'hello', True, 8.65) x[1] |
1 |
'hello' |
طباعة مجموعة محددة من العناصر في الصف
1 2 |
x = (3, 'hello', True, 8.65) x[1:3] |
1 |
('hello', True) |
طباعة اندكس عنصر محدد في الصف
1 2 |
x = (3, 'hello', True, 8.65) x.index(8.65) |
1 |
3 |
طباعة عدد مرات ظهور عنصر محدد في الصف
1 2 |
y = (7,8,6,9,3,7) y.count(7) |
1 |
2 |
من اهم الامور التي تحتاج الى معرفتها عند التعامل مع الصفوف هي انها غير قابلة للتعديل
1 2 3 4 |
x = (3, 'hello', True, 8.65) x.remove(3) # Error x.append(8) # Error x[1] = 'world' # Error |
ولذلك من اجل اضافة او حذف او تعديل اي عنصر في الصف نحتاج الى تحويلها الى قائمة ثم نعدل عليها ثم نرجعها الى صف وهذه الطريقة تستخدم عند الضرورة
مثال: سنقوم بتحويل الصف x الى قائمة سوف نسميها m
1 2 3 4 |
# Convert tuple to list x = (3, "hello", True, 8.65) m = list(x) print(type(m)) |
1 |
list |
الان نستطيع التعديل على المتغير m لأنه اصبح قائمة فمثلاً بأمكاننا حذف عنصر
1 2 3 |
# Now we can edit anything because list is mutable so let's remove number 3 m.remove(3) print(m) |
1 |
['hello', True, 8.65] |
او اضافة عنصر
1 2 3 |
# Add number 8 to m m.append(8) print(m) |
1 |
['hello', True, 8.65, 8] |
او تغيير عنصر
1 2 3 |
# Change 1st element to 'world' m[0] = "world" print(m) |
1 |
['world', True, 8.65, 8] |
وبعد الانتهاء من التعديلات التي نريد القيام بها ، نحتاج الى ارجاع القائمة الى صف
1 2 3 4 |
# Convert m list to tuple again x = tuple(m) print(x) print(type(x)) |
1 2 |
('world', True, 8.65, 8) <class 'tuple'> |
تمرين برمجي (5):
لدينا القائمة التالية التي تحتوي على عدة انواع من البيانات مثل صحيح ونصي وقائمة وقاموس
1 |
s = ["Sara", 90, ["Waleed", 70], {"Ahmed" : 86.5, "Ali": 95}] |
1- حول القائمة s الى توبل واخزن الناتج في متغير اسمه t
2- قم بطباعة درجة Ali والتي هي 95
s = ["Sara", 90, ["Waleed", 70], {"Ahmed" : 86.5, "Ali": 95}]
#1 Convert s list to t tuple
t = ________
# Print out t and t type
print(t)
print(type(t))
#2 Print out Ali grade 95
print(___________)
s = ["Sara", 90, ["Waleed", 70], {"Ahmed" : 86.5, "Ali": 95}]
#1 Convert s list to t tuple
t = tuple(s)
# Print out t and t type
print(t)
print(type(t))
#2 Print out Ali grade 95
print(t[3]["Ali"])
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
– من اجل طباعة درجة علي تحتاج الى اندكس القاموس الذي توجد فيه الدرجة وتحتاج الى مفتاح هذه الدرجة والذي هو Ali لأنه الوصول الى اي عنصر في الصف مثل الوصول الى اي عنصر في القائمة ويتم ذلك من خلال استخدام الاندكس ثم الوصول الى اي قيمة في القاموس يتم من خلال المفاتيح
المجموعات (Sets):
المجموعة او ما يعرف بأسم سيت set هي احد انواع البيانات في بايثون وابرز ما يميزها انها تحتوي على قيم فريدة غير مكررة فمثلاً لو كان لدينا مجموعة اسمها الالوان colors وهذه المجموعة فيها اكثر من قيمة تساوي اللون الاحمر red في الناتج سنحصل على قيمة واحدة تساوي red لأنه في المجموعات تهمل القيم المكررة
المجموعات تشبه القواميس في صفاتها فهي غير مرتبة ولا تلتزم بالاندكس وايضا تستخدم الاقواس المذنبة { } ولكن لا تستخدم النقطتين : لانها تحتوي على قيم فقط بدون مفاتيح
وبأمكاننا انشاء المجموعة بأستخدام الاقواس المذنبة { } ثم كتابة قيم المجموعة داخل الاقواس
1 2 3 |
# We can create a set in this way colors = {"blue", "green", "red", "red", "red"} colors |
1 |
{'blue', 'green', 'red'} |
او بأمكاننا انشاء المجموعة بأستخدام الوظيفة ()set ونضع قيم المجموعة داخل اقواس مربعة
1 2 3 |
# Or this way colors = set(["blue", "green", "red", "red", "red"]) colors |
1 |
{'blue', 'green', 'red'} |
طباعة نوع المتغير colors
1 |
type(colors) |
1 |
set |
في المجموعات sets لا يمكننا الوصول الى العناصر لانها لاتستخدم الاندكس مثل القوائم والصفوف والنصوص ولاتستخدم المفاتيح مثل القواميس
1 2 3 |
colors = {"blue", "green", "red", "red", "red"} colors[0] # Error colors["blue"] # Error |
ولكن يمكننا التأكد من عنصر ما ان كان موجود او غير موجود في المجموعة بأستخدام in
1 |
"blue" in colors |
1 |
True |
في المجموعة بأمكاننا اضافة اي عنصر بأستخدام المثود ()add فمثلاً في الكود التالي سنقوم بأضافة اللون الاصفر الى مجموعة الالوان colors
1 2 3 |
colors = {"blue", "green", "red", "red", "red"} colors.add("yellow") colors |
1 |
{'blue', 'green', 'red', 'yellow'} |
لكن لو كان العنصر الذي نريد اضافته اصلا موجود لن يتم تكراره فكما ذكرنا سابقا المجموعة تأخذ عناصر فريدة غير مكررة فمثلاً لو قمنا بأضافة اللون الازرق لمجموعة الالوان في الناتج سنحصل على قيمة واحدة blue لأن اللون الازرق موجود اساساً في مجموعة الالوان
1 2 3 |
colors = {"blue", "green", "red", "red", "red"} colors.add("blue") colors |
1 |
{'blue', 'green', 'red'} |
ولحذف اي عنصر من المجموعة نستخدم المثود ()remove ونكتب اسم العنصر الذي نريد حذفه
1 2 3 |
colors = {"blue", "green", "red", "red", "red"} colors.remove("green") colors |
1 |
{'blue', 'red'} |
وفي حال لم يكن العنصر اصلا موجود في القائمة سنحصل على خطاً Error
1 2 |
colors = {"blue", "green", "red", "red", "red"} colors.remove("white") #Error |
ولذلك تجنباً للاخطاء لانستخدم ()remove كثيراً بل نستخدم بدلها ()discard والتي تقوم بنبذ او تجاهل العنصر الذي لانريده والفائدة من استخدامها هي اننا لا نحصل في الناتج على خطأ Error في حال كان العنصر الذي نريد التخلص منه اصلاً غير موجود في المجموعه
1 2 3 |
colors = {"blue", "green", "red", "red", "red"} colors.discard("green") colors |
1 |
{'blue', 'red'} |
تجاهل عنصر معين
1 2 3 |
colors = {"blue", "green", "red", "red", "red"} colors.discard("white") colors |
1 |
{'blue', 'green', 'red'} |
من الامور المهمة التي تجعل من المجموعات ذات فائدة كبيرة في لغة بايثون هو انها تنطبق عليها جميع العمليات الرياضية التي تنطبق على المجموعات في الرياضيات مثل الاتحاد والتقاطع فبأمكاننا معرفة العناصر المشتركة بين مجموعتين او مايعرف بالتقاطع بأستخدام المثود ()intersection او علامة & وايضا بأمكاننا معرفة اتحاد عناصر المجموعتين او مايعرف بالاتحاد بأستخدام المثود ()union او علامة | ولكن تذكر لايوجد تكرار للعناصر في المجموعات
مثال: تقاطع مجموعتين
1 2 3 4 5 |
colors = {"blue", "green", "red", "red", "red"} new_colors = {"blue", "yellow"} # Intersection of 2 sets colors.intersection(new_colors) |
1 |
{'blue'} |
او
1 |
colors & new_colors |
1 |
{'blue'} |
مثال: اتحاد مجموعتين
1 2 3 4 5 |
colors = {"blue", "green", "red", "red", "red"} new_colors = {"blue", "yellow"} # Union of 2 sets colors.union(new_colors) |
1 |
{'blue', 'green', 'red', 'yellow'} |
او
1 |
colors | new_colors |
1 |
{'blue', 'green', 'red', 'yellow'} |
تمرين برمجي (6):
افترض ان لديك مجموعتين من الاصدقاء وهما مجموعة اصدقاء المدرسة school_friends ومجموعة افضل الاصدقاء best_friends
1 2 |
school_friends = {"Ali", "Sara", "Waleed", "Yasser"} best_friends = {"Waleed", "Khaled", "Nor", "Ali"} |
والمطلوب منك في هذا التمرين هو التالي:
1- قم بأضافة Ahmed الى مجموعة افضل الاصدقاء
2- قم بحذف Yasser من مجموعة اصدقاء المدرسة
3- اوجد التقاطع لمجموعتي الاصدقاء واخزن الناتج في المتغير int_friends
4- اوجد الاتحاد لمجموعتي الاصدقاء واخزن الناتج في المتغير un_friends
school_friends = {"Ali", "Sara", "Waleed", "Yasser"}
best_friends = {"Waleed", "Khaled", "Nor", "Ali"}
#1 Add Ahmed to best_friends
_________________________
print(best_friends)
#2 Discard Yasser from school_friends
________________________________
print(school_friends)
#3 Intersection of school_friends and best_friends
int_friends = _____________________________
print(int_friends)
#4 Union of school_friends and best_friends
un_friends = ______________________________
print(un_friends)
school_friends = {"Ali", "Sara", "Waleed", "Yasser"}
best_friends = {"Waleed", "Khaled", "Nor", "Ali"}
#1 Add Ahmed to best_friends
best_friends.add("Ahmed")
print(best_friends)
#2 Discard Yasser from school_friends
school_friends.discard("Yasser")
print(school_friends)
#3 Intersection of school_friends and best_friends
int_friends = school_friends & best_friends
print(int_friends)
#4 Union of school_friends and best_friends
un_friends = school_friends | best_friends
print(un_friends)
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
– استخدم المثود discard من اجل نبذ او حذف ياسر من مجموعة اصدقاء المدرسة
– استخدم العلامة & من اجل ايجاد التقاطع بين المجموعتين او استخدم المثود intersection
– استخدم العلامة | من اجل ايجاد اتحاد المجموعتين او استخدم المثود union