Muhammad Al-Xorazmiy nomidagi Toshkent Axborot texnologiyalari universiteti
Ma‘lumotlar tuzilmasi va algoritmlar fanidan mustaqil ish
O’qituvchi: Akbarova Marg’uba
Talaba: Sulaymonov Diyorbek
11.12.2023
Mavzu : Lug‘atlar va ularni amalga oshirish.
C++ tilida lug'atlar, ma'lumotlar strukturasini ifodalovchi bir turi bo'lib, "assotsiativ massiv" (associative array) yoki "assotsiativ ro'yxat" (associative list) deb ham ataladi. Bu ma'lumotlar strukturasida har bir element bir kalit (key) va unga mos keluvchi qiymat (value) mavjud bo'lishi kerak.
Lug’atlar “std::map” yoki “std::unordered_map” kabi standart C++ bibliotekasidagi obyektlardan foydalanilgan.
“std::map”
Elementlar tartiblangan (kalitlar orasidan)
Elementlar qo’shilganda tartib o’zgarmaydi
Yodda saqlash (memory overhead) yuqori
Xotira oqimining bajarilishi tartibi (‘0 ( log n ) ’).
Result :
std::unordered_map:
Elementlar tartiblanmagan
Elementlar qo’shilganda tartib o’zgarmaydi
Yodda saqlash (memory overhead) pastroq
Xotira oqimining bajarilish tartibi (“ 0 ( 1 ) ”)
Result:
Endi lug’atlar bilan Python tilida tanishamiz.
Lug’at Pathon dasturlash tilining turi hisoblanadi va u ikki qismdan tashkil topgan: kalit so'z va izoh (yoki tarjima). Lug’atlar {} qavsda keltiriladi. Sodda lug’atga misol keltiramiz:
talaba={’familiya’:’Aliyev’,’ismi’:’Salim’}
Bu yerda sodda talaba lug’atini yaratdik. Lug’atimiz ikki qismdan tashkil topgan. ‘familiya’ va ‘ismi’ lug’atning kalit so’zi hamda mos ravishda ‘Aliyev’ va ‘Salim’ kalit so’zlarning qiymati hisoblanadi. Kalit so'z va qiymat orasi ikki nuqta (:) bilan, lug'atdagi har bir juftlik esa vergul (,) bilan ajratiladi.
Pytonda lug'at kalit so'z-qiymat juftliklarining yi'ginidisi ekan. Lug'atdagi biror qiymatni ko'rish uchun unga kalit so'z orqali murojat qilamiz:
Lug’atlarga murojaat qilish:
Lug'atga yangi kalit so'z va qiymatlar qo'shishimiz ham mumkin. Keling yuqoridagi eng_uz lug’atiga 2 3 ta yangi element qo’shamiz va ekranga chiqaramiz.
Yuqorida lug’atga element qo’shishni o’rgandik.
Endi ekranga lug’atning faqat key larine va faqat value larini chiqarishni ko’rib chiqaylik.
Faqat lug’at key larini ekranga chiqarish uchun biz .keys() metodidan foydalanamiz.
Faqat lug’at qiymatlarini ekranga chiqarish uchun biz .values() metodidan foydalanamiz.
Biz lug’atdagi barcha elementlarini chiqarish uchun .items() metodidan foydalanamiz.
Keling endi sorted() funksiyasi bilan tanishamiz. Bu funksiya lug’at ichidagi elementlarni alifbo bo’yicha tartiblab beradi.
pop() metodi belgilangan kalit yordamida element o'chiriladi.
clear() metodi lug'atdan barcha elementlarni olib tashlaydi
copy() metodi lug'at nusxasini qaytaradi
|