Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التكرار عبر القواميس

جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 15 من 56.

تكرار القاموس باستخدام for يمنحك كلا نصفي كل زوج كـ tuple:

let prices = ["apple": 1, "bread": 3, "milk": 4]
for (item, price) in prices {
    print("\(item) costs \(price)")
}

ترتيب التكرار غير مضمون. قم بتشغيل الحلقة مرتين وقد ترى المدخلات بترتيب مختلف. عندما يكون الترتيب مهماً، قم بالفرز أولاً:

for (item, price) in prices.sorted(by: { $0.key < $1.key }) {
    print("\(item): \(price)")
}

التعبير الموجود داخل sorted(by:) هو closure: حيث يقوم بمقارنة زوجين ($0 و $1) بواسطة خاصية الـ key الخاصة بهما. ستحصل الـ closures على فصل خاص بها لاحقاً، أما الآن فتعامل مع هذا كطريقة لفرز القاموس.

خاصيتان مفيدتان إضافيتان: .keys و .values تمنحك مجموعة المفاتيح فقط أو مجموعة القيم فقط.

challenge icon

التحدي

سهل

يقوم قاموس scores بربط أسماء الطلاب بدرجات من نوع Int. اطبع ما يلي:

  1. كل إدخال بتنسيق <name>: <score>، مرتباً أبجدياً حسب الاسم، إدخال واحد في كل سطر
  2. Sum: <total> لمجموع كل القيم (استخدم .values و reduce)
  3. Above 70: <count> حيث count هو عدد الإدخالات التي تزيد درجتها عن 70 تماماً

بالنسبة للقاموس الافتراضي، يكون المخرج هو:

Alice: 85
Bob: 60
Cara: 90
Dan: 72
Sum: 307
Above 70: 3

ورقة مرجعية

قم بالتكرار عبر القاموس (dictionary) باستخدام for للحصول على أزواج المفتاح والقيمة (key-value tuples):

let prices = ["apple": 1, "bread": 3, "milk": 4]
for (item, price) in prices {
    print("\(item) costs \(price)")
}

ترتيب التكرار غير مضمون. قم بالفرز أولاً عندما يكون الترتيب مهماً:

for (item, price) in prices.sorted(by: { $0.key < $1.key }) {
    print("\(item): \(price)")
}

الوصول إلى المفاتيح أو القيم فقط باستخدام .keys و .values:

prices.keys    // مجموعة من المفاتيح
prices.values  // مجموعة من القيم

جرّب بنفسك

let scores: [String: Int] = [
    "Alice": 85, "Bob": 60, "Cara": 90, "Dan": 72
]

// TODO: طباعة المدخلات المرتبة؛ المجموع عبر reduce على .values؛ حساب العناصر > 70
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق