Published on

Swiftda Dictionary

Authors

Swiftda dictionary tartibsiz elementlar to'plamidir. U elementlarni kalit/qiymat ko'rinishida saqlaydi. Bu yerda kalitlar har bir qiymat bilan bog'langan noyob identifikatorlardir.

Keling, bir misol ko'ramiz.

Agar davlatlar va ularning poytaxtlari haqida ma'lumot saqlamoqchi bo'lsak, davlat nomlarini kalit, poytaxtlarni esa qiymat sifatida yozishimiz mumkin.

Kalitlar va qiymatlar:

Nepal β€” Kathmandu
Italy β€” Rome
England β€” London

Dictionary yaratish

Quyidagicha dictionary yaratishimiz mumkin:

Swift
Dictionary yaratish
var capitalCity = ["Nepal": "Kathmandu", "Italy": "Rome", "England": "London"] print(capitalCity)

Yuqoridagi misolda biz capitalCity nomli dictionary yaratdik. Bu yerda:

  • Kalitlar: "Nepal", "Italy", "England"
  • Qiymatlar: "Kathmandu", "Rome", "London"

Kodni ishga tushirganimizda natija tartibi boshqacha bo'lishi mumkin, chunki dictionary tartibga ega emas.

Bu yerda kalit va qiymatlarning ikkisi ham String turida. Dictionary turli tipdagi kalit va qiymatlarga ham ega bo'lishi mumkin.

Misol:

Turli tipdagi kalit va qiymatlar bilan:

Swift
Turli tipdagi kalit va qiymatlar
var numbers = [1: "One", 2: "Two", 3: "Three"] print(numbers)

Bu misolda kalitlar Int, qiymatlar esa String tipida.

Dictionaryga element qo'shish

Kengaytirish uchun dictionary nomi bilan [] ishlatiladi.

Swift
Element qo'shish
var capitalCity = ["Nepal": "Kathmandu", "England": "London"] print("Initial Dictionary: ", capitalCity) capitalCity["Japan"] = "Tokyo" print("Updated Dictionary: ", capitalCity)

Bu yerda:

capitalCity["Japan"] = "Tokyo"

yangi kalit/qiymat juftligini qo'shdi.

Dictionary qiymatini o'zgartirish

Xuddi shu usul bilan qiymatni ham o'zgartirish mumkin.

Swift
Qiymatni o'zgartirish
var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"] print("Initial Dictionary: ", studentID) studentID[112] = "Stan" print("Updated Dictionary: ", studentID)

112 kalitidagi "Kyle" qiymati "Stan"ga o'zgardi.

Dictionarydan elementlarni olish

Swiftda dictionary kalitlari va qiymatlari mustaqil olinishi mumkin.

1. Faqat kalitlarni olish

Swift
Kalitlarni olish
var cities = ["Nepal":"Kathmandu", "China":"Beijing", "Japan":"Tokyo"] print("Dictionary: ", cities) var countryName = Array(cities.keys) print("Keys: ", countryName)

2. Faqat qiymatlarni olish

Swift
Qiymatlarni olish
var cities = ["Nepal":"Kathmandu", "China":"Beijing", "Japan":"Tokyo"] print("Dictionary: ", cities) var cityName = Array(cities.values) print("Values: ", cityName)

Dictionarydan element o'chirish

removeValue() metodidan foydalaniladi.

Swift
Element o'chirish
var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"] print("Initial Dictionary: ", studentID) var removedValue = studentID.removeValue(forKey: 112) print("Dictionary After removeValue(): ", studentID)

removeValue(forKey: 112) β€” 112 kalitiga tegishli elementni o'chiradi.

Eslatma: Barcha elementlarni o'chirish uchun removeAll() ishlatiladi.

Dictionaryning boshqa metodlari

  • sorted() β€” elementlarni tartiblaydi
  • shuffled() β€” elementlar tartibini aralashtiradi
  • contains() β€” ma'lum element mavjudligini tekshiradi
  • randomElement() β€” tasodifiy element qaytaradi
  • firstIndex() β€” berilgan elementning indeksini qaytaradi

Dictionary bo'ylab iteratsiya qilish

Swift
Dictionary bo'ylab iteratsiya
var classification = ["Fruit": "Apple", "Vegetable": "Broccoli", "Beverage": "Milk"] print("Keys: Values") for (key, value) in classification { print("\(key): \(value)") }

Dictionary elementlar sonini topish

Swift
count xususiyati
var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"] print(studentID.count)

Bo'sh Dictionary yaratish

Swift
Bo'sh dictionary yaratish
var emptyDictionary = [Int: String]() print("Empty Dictionary: ", emptyDictionary)

Bu yerda:

[Int: String]()

  • Int β€” kalitlar integer bo'lishini
  • String β€” qiymatlar string bo'lishini bildiradi

Bo'sh dictionary yaratishda ma'lumot turi majburiy ko'rsatiladi.


πŸ“š Masalalarni qanday yechish kerak?

βœ… Namuna: 1-masala yechimi

Masala: 1 dan n gacha sonlar uchun dictionary yarating (kalit: son, qiymat: son * 2) va elementlar sonini qaytaring.

Bosqichma-bosqich yechim:

1-qadam: Masalani tushunish

  • n = 5 β†’ dict: [1: 2, 2: 4, 3: 6, 4: 8, 5: 10] β†’ 5 element
  • n = 3 β†’ dict: [1: 2, 2: 4, 3: 6] β†’ 3 element

2-qadam: Dictionary yaratish

var dict = [Int: Int]()
for i in 1...n {
    dict[i] = i * 2
}
return dict.count

3-qadam: To'liq yechim

Swift
1-masala yechimi
func solve(_ n: Int) -> Int { var dict = [Int: Int]() for i in 1...n { dict[i] = i * 2 } return dict.count } // Tekshirish print(solve(5)) // 5 print(solve(3)) // 3 print(solve(10)) // 10 print(solve(1)) // 1

Natija: Barcha testlar o'tadi βœ…

Izoh:

  • var dict = [Int: Int]() β€” bo'sh dictionary yaratish
  • dict[i] = i * 2 β€” kalit va qiymat qo'shish
  • dict.count β€” elementlar sonini qaytaradi
  • n ta kalit/qiymat juftligi bo'ladi

Xulosa

  • Dictionary β€” kalit/qiymat juftliklari to'plami
  • Kalitlar β€” noyob bo'lishi kerak
  • Tartibsiz β€” elementlar tartibi yo'q
  • dict[key] = value β€” element qo'shish/o'zgartirish
  • removeValue() β€” element o'chirish
  • keys β€” barcha kalitlar
  • values β€” barcha qiymatlar
Buy mea coffee