🐍 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! 👏