Python'da lug'at (dict) bilan ishlash

Ro’yxatda qiymatlarga tartib raqami (indeks) orqali murojaat qildik. Lekin ba’zan raqam emas, nom bo’yicha izlash qulayroq: “Azizning yoshi qancha?” degandek. Aynan shu ish uchun Python’da lug’at (dict) bor. Bu darsda lug’at yaratish va u bilan ishlashni ko’ramiz.

Lug’at nima

Lug’at — kalit-qiymat juftliklaridan iborat to’plam. Har bir qiymat o’ziga tegishli kalit bilan saqlanadi. Xuddi haqiqiy lug’atdagidek: so’z (kalit) → tarjima (qiymat). U figurali qavs { } ichida yoziladi:

Python

Bu yerda "ism", "yosh", "shahar" — kalitlar; "Aziz", 25, "Toshkent" — ularning qiymatlari. Kalit va qiymat orasida ikki nuqta (:) turadi.

Qiymatga kalit orqali murojaat

Qiymatni olish uchun kalitni kvadrat qavsda yozamiz:

Python

Bu ro’yxatdagi [0], [1] ga o’xshaydi, farqi — bu yerda raqam emas, ma’noli kalit ishlatiladi. Shuning uchun kod o’qishga ancha tushunarli: inson["yosh"]inson[1] dan aniqroq.

Qo’shish va o’zgartirish

Lug’at o’zgaruvchan. Yangi kalitga qiymat bersangiz — qo’shiladi; mavjud kalitga bersangiz — almashadi:

Python

Kalitni o’chirish uchun del ishlatiladi: del inson["shahar"].

get — xavfsiz o’qish

get metodi kalit bo’lmasa ham xato bermaydi — u None yoki siz bergan standart qiymatni qaytaradi:

Python

Lug’at ustidan yurish

for sikli lug’at bo’yicha yurganda kalitlarni beradi. Kalit va qiymatni birga olish uchun .items() ishlatiladi:

Python

.keys() faqat kalitlarni, .values() faqat qiymatlarni beradi.

Ro’yxat va lug’at — qaysi biri qachon

  • Ro’yxat — tartib muhim bo’lganda, elementlar bir turdagi bo’lganda (baholar, ismlar ro’yxati).
  • Lug’at — har element o’z nomi bilan izlanganda, biror narsaning xususiyatlarini saqlaganda (bir insonning ismi, yoshi, shahri).

Amaliy mashq

Talaba ma’lumotlarini lug’atda saqlang:

  1. talaba = {"ism": "Aziz", "yosh": 20} lug’atini yarating;
  2. unga "shahar" kalitini qo’shing;
  3. yosh qiymatini yangilang;
  4. get() bilan mavjud bo’lmagan "telefon" kalitini o’qing — xato chiqmasligiga e’tibor bering;
  5. for bilan barcha kalit-qiymat juftlarini chiqaring.

talaba["telefon"] deb yozib ko’ring — get() dan farqi nimada?

Qisqacha xulosa

  • Lug’at — { } ichidagi kalit: qiymat juftliklari.
  • Qiymatga kalit orqali murojaat qilinadi: inson["ism"].
  • Yangi kalitga qiymat berish — qo’shadi; mavjud kalitga — o’zgartiradi.
  • Bo’lmagan kalit KeyError beradi; get esa xavfsiz — None yoki standart qiymat qaytaradi.
  • .items() — kalit va qiymatni birga, .keys()/.values() — alohida beradi.

Keyingi darsda to’plam (set) va kortej (tuple) — ma’lumotni saqlashning yana ikki usulini ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi