⬅️ Bosh sahifaga

🐍 Python Dictionary

Kalit-qiymat juftligi, looplar orqali iteratsiya, get() metodi

Dars davomiyligi: 120 daqiqa (2 soat)

Bugungi darsda o'rganamiz:

  • Dictionary nima va qanday ishlaydi
  • Kalit-qiymat juftliklari bilan ishlash
  • Looplar orqali iteratsiya usullari
  • get() metodining afzalliklari
  • Amaliy mashqlar va misollar

👨‍💻 Assalomu alaykum, yosh dasturchilar! 😊

📚 Dictionary nima?

1-qism: Kalit-qiymat juftligi (20 daqiqa)

Dictionary — bu kalit (key) va qiymat (value) juftliklaridan iborat ma'lumot turi.

Asosiy xususiyatlari:

  • {} jingalak qavslar ichida yoziladi
  • Kalit va qiymat : bilan ajratiladi
  • Kalitlar o'ziga xos bo'lishi kerak
  • Qiymatlar takrorlanishi mumkin
  • O'zgaruvchan (mutable) ma'lumot turi
talaba = {"ism": "Ali", "yosh": 15, "sinf": "9-sinf"} print(talaba) # {'ism': 'Ali', 'yosh': 15, 'sinf': '9-sinf'} # Elementlarga murojaat print(talaba["ism"]) # Ali print(talaba["yosh"]) # 15 # Dictionary uzunligi print(len(talaba)) # 3

⚠️ Xato holatlar

Agar mavjud bo'lmagan kalitga murojaat qilsak, xato chiqadi:

talaba = {"ism": "Ali", "yosh": 15, "sinf": "9-sinf"} print(talaba["baholar"]) # KeyError: 'baholar'

✏️ Mashq vaqti!

5 daqiqa vaqt:

O'zingiz haqingizda dictionary yarating (ism, yosh, sevimli dars) va:

  • Ismingizni ekranga chiqaring
  • Dictionary uzunligini ekranga chiqaring

Javob namunasi:

men = {"ism": "Sardor", "yosh": 16, "sevimli_dars": "Python"} print(men["ism"]) # Sardor print(len(men)) # 3

🔄 Looplar orqali iteratsiya

2-qism: Looplar orqali iteratsiya (25 daqiqa)

Dictionary'da elementlarni birma-bir ko'rib chiqish uchun for tsiklidan foydalanamiz.

1. Faqat kalitlar ustida yurish:

talaba = {"ism": "Ali", "yosh": 15, "sinf": "9-sinf"} for kalit in talaba: print(kalit) # Natija: # ism # yosh # sinf

2. Kalitlar yordamida qiymatlarga murojaat:

for kalit in talaba: print(f"{kalit}: {talaba[kalit]}") # Natija: # ism: Ali # yosh: 15 # sinf: 9-sinf

🔑 keys(), values(), items() metodlari

Maxsus metodlar:

  • keys() — faqat kalitlarni qaytaradi
  • values() — faqat qiymatlarni qaytaradi
  • items() — kalit-qiymat juftliklarini qaytaradi
talaba = {"ism": "Ali", "yosh": 15, "sinf": "9-sinf"} # Faqat kalitlar for kalit in talaba.keys(): print(kalit) # Faqat qiymatlar for qiymat in talaba.values(): print(qiymat) # Kalit va qiymatlar birga (eng qulay usul!) for kalit, qiymat in talaba.items(): print(f"{kalit}: {qiymat}")

✏️ Mashq vaqti!

5 daqiqa vaqt:

{"meva": "olma", "narxi": 5000, "rang": "qizil"} dictionary'si bilan:

  • Faqat qiymatlarni loop yordamida ekranga chiqaring
  • Kalit va qiymatlarni birga loop yordamida ekranga chiqaring

🛡️ get() metodi

3-qism: get() metodi (20 daqiqa)

get() metodi — dictionary'dan qiymatni olishning xavfsiz usuli!

Sintaksis:

dictionary.get(kalit, standart_qiymat)

mahsulot = {"nomi": "telefon", "narxi": 1000000} # Oddiy usul print(mahsulot.get("nomi")) # telefon print(mahsulot.get("rang")) # None (kalit yo'q) # Standart qiymat bilan print(mahsulot.get("rang", "Mavjud emas")) # Mavjud emas # Foydali xabar kalit = "model" natija = mahsulot.get(kalit, f"{kalit} haqida ma'lumot topilmadi") print(natija) # model haqida ma'lumot topilmadi

get() metodining afzalliklari:

  • Xato (KeyError) chiqarmaydi
  • Kod qisqaroq va tushunarli
  • Standart qiymat belgilash mumkin

🆚 get() vs oddiy usul

get() metodisiz (uzoq yo'l):

mahsulot = {"nomi": "telefon", "narxi": 1000000} if "narxi" in mahsulot: print(mahsulot["narxi"]) else: print("Narx topilmadi")

get() metodi bilan (qisqa yo'l):

mahsulot = {"nomi": "telefon", "narxi": 1000000} print(mahsulot.get("narxi", "Narx topilmadi"))

✏️ Mashq vaqti!

5 daqiqa vaqt:

{"ism": "Zilola", "yosh": 14} dictionary'si bilan:

  • "yosh" qiymatini get() yordamida oling va ekranga chiqaring
  • "sinf" qiymatini olishga harakat qiling, agar topilmasa, "Sinf belgilanmagan" deb chiqaring

💻 Amaliy mashqlar

4-qism: Amaliy mashqlar (25 daqiqa)

📝 Mashq 1: Kalit-qiymat juftligi

O'zingiz haqingizda dictionary yarating (ism, yosh, sevimli rang, sevimli dars):

  • Sevimli rangingizni ekranga chiqaring
  • Dictionary uzunligini ekranga chiqaring
shaxs = {"ism": "Sardor", "yosh": 16, "rang": "qizil", "dars": "Matematika"} print(shaxs["rang"]) # qizil print(len(shaxs)) # 4

🔄 Mashq 2: Looplar orqali iteratsiya

{"fan": "Informatika", "baho": 90, "o'qituvchi": "Gulnoza"} dictionary'si bilan:

  • Faqat kalitlarni loop yordamida ekranga chiqaring
  • Kalit va qiymatlarni birga loop yordamida ekranga chiqaring

✅ Mashq javobi

Mashq 2 javobi:

dars = {"fan": "Informatika", "baho": 90, "o'qituvchi": "Gulnoza"} # Faqat kalitlar for kalit in dars: print(kalit) print("---") # Kalit va qiymatlar birga for kalit, qiymat in dars.items(): print(f"{kalit}: {qiymat}")

🛡️ Mashq 3: get() metodi

{"mahsulot": "kitob", "narxi": 20000} dictionary'si bilan:

  • "narxi" qiymatini get() yordamida oling va ekranga chiqaring
  • "muallif" qiymatini olishga harakat qiling, agar topilmasa, "Muallif noma'lum" deb chiqaring
mahsulot = {"mahsulot": "kitob", "narxi": 20000} print(mahsulot.get("narxi")) # 20000 print(mahsulot.get("muallif", "Muallif noma'lum")) # Muallif noma'lum

🏠 Uy vazifasi

5-qism: Uy vazifasi (20 daqiqa)

📚 Vazifa 1:

O'zingiz haqingizda dictionary yarating (ism, yosh, sevimli kitob, sevimli fan):

  • Sevimli faningizni ekranga chiqaring
  • Dictionary uzunligini ekranga chiqaring

🔄 Vazifa 2:

{"meva": "olma", "narxi": 5000, "rang": "qizil"} dictionary'si bilan:

  • Faqat qiymatlarni loop yordamida ekranga chiqaring
  • Kalit va qiymatlarni birga loop yordamida ekranga chiqaring

🛡️ Vazifa 3:

{"fan": "Matematika", "baho": 95} dictionary'si bilan:

  • "baho" qiymatini get() yordamida oling va ekranga chiqaring
  • "o'qituvchi" qiymatini olishga harakat qiling, agar topilmasa, "O'qituvchi noma'lum" deb chiqaring

🎉 Xulosa

6-qism: Qayta ko'rish va savollar (10 daqiqa)

🧠 Bugun nimalarni o'rgandik?

  • Dictionary - kalit-qiymat juftliklaridan iborat ma'lumot turi
  • Loop - keys(), values(), items() metodlari bilan iteratsiya
  • get() metodi - xavfsiz qiymat olish usuli
  • Amaliy mashqlar - real misollar bilan ishlash

Savol-javob:

  • Dictionary'da kalit-qiymat juftligi qanday ishlatiladi?
  • Dictionary'da looplar orqali qanday iteratsiya qilish mumkin?
  • get() metodining afzalligi nimada?
📚 Keyingi dars: If...Else shartli operatorlar, Nested if, ternary operator

🚀 Ajoyib ish qildingiz! 👏

1 / 11