Python'da dictionary (lug'at) bilan ishlash

Saqlab olindi !

Python'da dictionary (lug'at) bilan ishlash

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 yoki in orqali kalit mavjudligini tekshiring. Bu sizni ko'p xatolardan saqlaydi.

+3

👍

+0

❤

+0

😎

+1

💥

+0

👽

+0

😐

+0

👎

Maqola teglari

Python
Abdurahmon Rashidov Python 74
Facebook Telegram

Bu haftada ko'p o'qildi

Kompyuter tarmoqlarining asosiy turlari

Kompyuter tarmoqlarining asosiy turlari

53818 1321
Kesh xotira nima va uning vazifalari

Kesh xotira nima va uning vazifalari

7168 525
Umumiy tezkor tugmalar : shortcuts

Umumiy tezkor tugmalar : shortcuts

6949 165

Mavzuga oid

Python'da virtual environment va pip: loyihani to'g'ri sozlash

Python'da virtual environment va pip: loyihani to'g'ri sozlash

51 2
Python Backend dasturlash uchun yo'l xaritasi - 2024

Python Backend dasturlash uchun yo'l xaritasi - 2024

164 6
Pythonni o'rganish uchun 2024-yilda nima qilishim kerak ?

Pythonni o'rganish uchun 2024-yilda nima qilishim kerak ?

279 28