Menu
Coddy logo textTech

Sözlükleri Yineleme

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 15 / 56.

Bir sözlüğü for ile yinelemek, her çiftin her iki yarısını size bir demet (tuple) olarak verir:

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

Yineleme sırası garanti edilmez. Döngüyü iki kez çalıştırdığınızda girdileri farklı bir sırada görebilirsiniz. Sıralama önemli olduğunda, önce sıralayın:

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

sorted(by:) içindeki ifade bir closure'dır: iki çifti ($0 ve $1) key özelliklerine göre karşılaştırır. Closure'lar ileride kendilerine ait bir bölüme sahip olacaklar, şimdilik bunu bir sözlüğü sıralamak için bir tarif olarak görün.

İki kullanışlı özellik daha: .keys ve .values size yalnızca anahtarlardan veya yalnızca değerlerden oluşan koleksiyonu verir.

challenge icon

Görev

Kolay

scores sözlüğü, öğrenci isimlerini Int puanlarıyla eşleştirir. Şunları yazdırın:

  1. Her bir girişi <name>: <score> formatında, isime göre alfabetik olarak sıralanmış şekilde, her satıra bir tane gelecek şekilde
  2. Tüm değerlerin toplamını Sum: <total> olarak (.values ve reduce kullanın)
  3. Above 70: <count> şeklinde, burada count puanı tam olarak 70'ten büyük olan girişlerin sayısıdır

Varsayılan sözlük için çıktı şöyledir:

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

Kendin dene

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

// YAPILACAK: sıralanmış girdileri yazdır; .values üzerinde reduce ile topla; 70'ten büyük olanları say
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Swift playground