فرق المجموعات
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 35 من 78.
يحتوي الفرق بين مجموعتين على عناصر المجموعة الأولى غير الموجودة في المجموعة الثانية. كرّر على عناصر المجموعة الأولى واحتفظ بما تفتقده المجموعة الثانية:
var needed := {"rope": true, "torch": true, "map": true}
var packed := {"torch": true, "apple": true}
var missing := {}
for item in needed:
if not packed.has(item):
missing[item] = true
print(missing.keys()) # ["rope", "map"]ترتيب المجموعات مهم. الفرق بين packed وneeded هو ["apple"]: ما حزمتَه لكنك لم تحتج إليه.
يشكّل الفرقان معًا الفرق المتماثل: العناصر الموجودة في مجموعة واحدة فقط. هنا، هي rope وmap وapple.
للتحقق من عدم وجود أي شيء مفقود، تأخذ has_all() مصفوفةً وتُرجع true عندما يكون كل عنصر فيها مفتاحًا في القاموس:
print(packed.has_all(needed.keys())) # false: الحبل والخريطة غير موجودينالتحدي
سهلقبل الرحلة، قارن ما تحتاج إليه بما حزمتَه. يقرأ البرنامج سطرين، العناصر المطلوبة والعناصر التي حزمتها، مفصولة بمسافات، وينشئ الكود الابتدائي المجموعتين needed وpacked.
اطبع سطرين، مع وصل العناصر باستخدام , :
Missing:متبوعًا بالعناصر المطلوبة غير المحزومةExtra:متبوعًا بالعناصر المحزومة غير المطلوبة
حافظ على ترتيب المجموعة التي تمرّ عليها. اطبع none بدلًا من قائمة فارغة. بالنسبة إلى الإدخال:
rope torch map
torch appleيكون الناتج:
Missing: rope, map
Extra: appleجرّب بنفسك
extends Node
func _ready():
var needed := {}
for item in OS.read_string_from_stdin().split(" ", false):
needed[item] = true
var packed := {}
for item in OS.read_string_from_stdin().split(" ", false):
packed[item] = true
# احسب الفرقين
# اطبع النتائج
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميستدرّب بنفسك: مترجم GDScript عبر الإنترنت