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:
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:
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:
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:
Lug’at ustidan yurish
for sikli lug’at bo’yicha yurganda kalitlarni
beradi. Kalit va qiymatni birga olish uchun .items() ishlatiladi:
.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:
talaba = {"ism": "Aziz", "yosh": 20}lug’atini yarating;- unga
"shahar"kalitini qo’shing; yoshqiymatini yangilang;get()bilan mavjud bo’lmagan"telefon"kalitini o’qing — xato chiqmasligiga e’tibor bering;forbilan 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
KeyErrorberadi;getesa xavfsiz —Noneyoki 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.