Python'da ma'lumot saqlashning ko'p usullari bor, lekin dictionary (lug'at) — ularning ichida eng ko'p ishlatilgani. Real loyihalarda foydalanuvchi ma'lumotlari, sozlamalar, API javoblari — barchasi dictionary ko'rinishida keladi. Shuning uchun uni yaxshi tushunish juda muhim.
Dictionary nima va u qanday ishlaydi
Dictionary — bu "kalit: qiymat" juftliklari to'plami. Xuddi haqiqiy lug'at kabi: so'z (kalit) va uning tarjimasi (qiymat).
# Bo'sh dictionary
d = {}
# Ma'lumotlar bilan dictionary
foydalanuvchi = {
"ism": "Jasur",
"yosh": 22,
"shahar": "Toshkent",
"faol": True
}
# Qiymatni olish
print(foydalanuvchi["ism"]) # Jasur
print(foydalanuvchi["yosh"]) # 22
get() usuli — xavfsiz o'qish
Agar kalit mavjud bo'lmasa, to'g'ridan-to'g'ri [] bilan kirish xato beradi. get() esa xavfsizroq:
# Bu xato beradi (KeyError)
# print(foydalanuvchi["telefon"])
# Bu xato bermaydi, None qaytaradi
print(foydalanuvchi.get("telefon")) # None
# Standart qiymat bilan
print(foydalanuvchi.get("telefon", "Kiritilmagan")) # Kiritilmagan
Qiymat qo'shish va o'zgartirish
# Yangi kalit qo'shish
foydalanuvchi["kasb"] = "Backend dasturchi"
foydalanuvchi["ish_joyi"] = "TechCorp"
# Mavjud qiymatni o'zgartirish
foydalanuvchi["yosh"] = 23
print(foydalanuvchi)
Dictionary bo'ylab aylanish
talabalar_bahosi = {
"Ali": 85,
"Vali": 92,
"Guli": 78,
"Soli": 95
}
# Faqat kalitlar
for ism in talabalar_bahosi.keys():
print(ism)
# Faqat qiymatlar
for baho in talabalar_bahosi.values():
print(baho)
# Kalit va qiymat birgalikda
for ism, baho in talabalar_bahosi.items():
if baho >= 90:
print(f"{ism}: A'lo ({baho})")
elif baho >= 70:
print(f"{ism}: Yaxshi ({baho})")
else:
print(f"{ism}: Qoniqarli ({baho})")
Dictionary comprehension
Ro'yxat kabi, dictionary ham comprehension orqali tezda yaratiladi:
sonlar = [1, 2, 3, 4, 5]
# Har bir sonning kvadrati
kvadratlar = {son: son ** 2 for son in sonlar}
print(kvadratlar) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# Faqat juft sonlar
juft_kvadratlar = {son: son ** 2 for son in sonlar if son % 2 == 0}
print(juft_kvadratlar) # {2: 4, 4: 16}
Ko'p uchraydigan xatolar
ma'lumot = {"ism": "Jasur"}
# Xato: mavjud bo'lmagan kalit
# print(ma'lumot["yosh"]) # KeyError!
# To'g'ri: avval tekshirish
if "yosh" in ma'lumot:
print(ma'lumot["yosh"])
else:
print("Yosh kiritilmagan")
Maslahat: Dictionary'dan ma'lumot olishdan oldin doim
get()usulidan foydalaning yokiinorqali kalit mavjudligini tekshiring. Bu sizni ko'p xatolardan saqlaydi.
+3
+0
+0
+1
+0
+0
+0