Skip to main content

4-dars. Non-primitive typelar (Set va Dictionary)

Dars maqsadlari:

  • Set
    • Set non-primitive turini tushunish.
    • Setning asosiy funksiyalari: add, union, difference, intersection, update, clear, copy, difference_update, discard, intersection_update, pop, remove haqida bilib olish.
    • Set va list ma'lumotlari bilan qanday ishlashni o'rganish.
  • Dictionary
    • Dictionary ma'lumot turini tushunish.
    • Dictionary ning asosiy funksiyalari va ularning qanday ishlashini o‘rganish.
    • List va dictionary ma'lumotlarini birga ishlatish usullarini o‘zlashtirish.

Set

Set haqida tushuncha

Setlar - bu takrorlanmaydigan qiymatlarni o'z ichiga oladigan ma'lumotlar strukturasi. Python dasturlash tilida setlar {} qavslar bilan yaratiladi va o'zgaruvchan (mutable) hisoblanadi. Yana bir muhim jihati - setlar tartiblangan emas, shuning uchun ichidagi elementlar har doim bir xil tartibda saqlanmaydi.


Setning asosiy funksiyalari

add()

add() funksiyasi setga yangi element qo'shadi. Agar element avvaldan mavjud bo'lsa, u hech qanday o'zgarish qilmaydi.

Sintaksis:

set_name.add(element)

Misol:

my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Natija: {1, 2, 3, 4}

union()

union() funksiyasi ikkita yoki undan ortiq setni birlashtiradi va ularning barcha unikal elementlarini qaytaradi.

Sintaksis:

new_set = set1.union(set2)

Misol:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1.union(set2)
print(result) # Natija: {1, 2, 3, 4, 5}

difference()

difference() funksiyasi bir setdan ikkinchi setdagi elementlarni olib tashlab, natijaviy setni qaytaradi.

Sintaksis:

new_set = set1.difference(set2)

Misol:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
result = set1.difference(set2)
print(result) # Natija: {1}

intersection()

intersection() funksiyasi ikkita setning kesishgan joylarini (ya'ni, har ikkala setda mavjud bo'lgan elementlarni) qaytaradi.

Sintaksis:

new_set = set1.intersection(set2)

Misol:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
result = set1.intersection(set2)
print(result) # Natija: {2, 3}

update()

update() funksiyasi setga boshqa set yoki iterable (masalan, list) elementlarini qo'shadi.

Sintaksis:

set_name.update(another_set)

Misol:

my_set = {1, 2}
my_set.update([3, 4])
print(my_set) # Natija: {1, 2, 3, 4}

clear()

clear() funksiyasi setni tozalaydi, ya'ni barcha elementlarni olib tashlaydi.

Sintaksis:

set_name.clear()

Misol:

my_set = {1, 2, 3}
my_set.clear()
print(my_set) # Natija: set()

copy()

copy() funksiyasi setning nusxasini yaratadi.

Sintaksis:

new_set = set_name.copy()

Misol:

my_set = {1, 2, 3}
new_set = my_set.copy()
print(new_set) # Natija: {1, 2, 3}

difference_update()

difference_update() funksiyasi setdan boshqa setdagi elementlarni olib tashlaydi.

Sintaksis:

set_name.difference_update(another_set)

Misol:

my_set = {1, 2, 3}
my_set.difference_update({2, 3})
print(my_set) # Natija: {1}

discard()

discard() funksiyasi berilgan elementni setdan olib tashlaydi. Agar element setda bo'lmasa, xato bermaydi.

Sintaksis:

set_name.discard(element)

Misol:

my_set = {1, 2, 3}
my_set.discard(2)
print(my_set) # Natija: {1, 3}

intersection_update()

intersection_update() funksiyasi setni boshqa setning kesishgan joyi bilan yangilaydi.

Sintaksis:

set_name.intersection_update(another_set)

Misol:

my_set = {1, 2, 3}
my_set.intersection_update({2, 3, 4})
print(my_set) # Natija: {2, 3}

pop()

pop() funksiyasi setdan bir elementni olib tashlaydi va uni qaytaradi. Agar set bo'sh bo'lsa, xato beradi.

Sintaksis:

removed_element = set_name.pop()

Misol:

my_set = {1, 2, 3}
removed_item = my_set.pop()
print(my_set) # Natija: {2, 3} (1 yoki boshqa element bo'lishi mumkin)
print(removed_item) # Natija: 1 (bu o'zgarishi mumkin)

remove()

remove() funksiyasi berilgan elementni setdan olib tashlaydi. Agar element mavjud bo'lmasa, xato beradi.

Sintaksis:

set_name.remove(element)

Misol:

my_set = {1, 2, 3}
my_set.remove(2)
print(my_set) # Natija: {1, 3}

Set va list bilan ishlash

Setlar va listlar o'rtasida ba'zi farqlar mavjud. Listlar tartiblangan va takrorlanuvchi elementlarni saqlaydi, setlar esa tartiblanmagan va takrorlanmaydigan elementlardan iborat.

Misollar

List:

my_list = [1, 2, 2, 3]  # Takrorlanadigan elementlar
print(my_list) # Natija: [1, 2, 2, 3]

Set:

my_set = {1, 2, 2, 3}  # Takrorlanmaydigan elementlar
print(my_set) # Natija: {1, 2, 3}

Listlar sizga elementlarni qo'shish va o'chirishda ko'proq nazorat beradi, lekin setlar takrorlanuvchi elementlardan qochib, uni oson boshqarish uchun qulay qiladi.


Dictionary

Kirish

Dictionary, asosan, kalit-qiymat juftliklaridan tashkil topgan ma'lumot tuzilmasi. Bu dasturlashda juda qulay va foydali vosita bo'lib, u bilan ish qilish sizni juda ko'p vaqtni tejashga yordam beradi.

Dictionary haqida tushuncha

Dictionary - bu kalit-qiymat juftliklaridan iborat bo'lgan ma'lumot turi hisoblanadi. Har bir kalit (key) o'ziga tegishli qiymat (value) ga ega. Misol uchun, bir shaxsning ma'lumotlarini saqlamoqchi bo'lsangiz, dictionary yordamida ularning ism, yoshi va kasbiga oid ma'lumotlarni saqlashingiz mumkin:

person = {
"ism": "Ali",
"yosh": 25,
"kasb": "Dasturchi"
}

Dictionary funksiyalari

Endi dictionary'ning ba'zi asosiy funksiyalariga nazar solamiz:

  1. clear(): Dictionary ichidagi barcha ma'lumotlarni o'chiradi.

    person.clear()  # Hamma ma'lumotlarni o'chiradi
  2. copy(): Dictionary ning nusxasini yaratadi.

    new_person = person.copy()  # person ning nusxasini yaratadi
  3. get(key): Berilgan kalit bo'yicha qiymatni qaytaradi. Agar kalit mavjud bo'lmasa, None qaytaradi.

    age = person.get("yosh")  # 25 ni qaytaradi
  4. items(): Dictionary ichidagi kalit-qiymat juftliklarini tuple shaklida qaytaradi.

    for key, value in person.items():
    print(key, value)
  5. keys(): Dictionary ichidagi barcha kalitlarni ro'yxat shaklida qaytaradi.

    keys = person.keys()  # ['ism', 'yosh', 'kasb']
  6. values(): Dictionary ichidagi barcha qiymatlarni ro'yxat shaklida qaytaradi.

    values = person.values()  # ['Ali', 25, 'Dasturchi']
  7. pop(key): Berilgan kalit bo'yicha qiymatni olib tashlaydi va uni qaytaradi.

    name = person.pop("ism")  # 'Ali' ni qaytaradi va 'ism' ni o'chiradi
  8. popitem(): So'nggi qo'shilgan kalit-qiymat juftligini olib tashlaydi va uni qaytaradi.

    last_item = person.popitem()  # ('kasb', 'Dasturchi') ni qaytaradi
  9. update(another_dict): Boshqa dictionary dan kalit-qiymat juftliklarini qo'shadi.

    person.update({"yosh": 26})  # 'yosh' ni yangilaydi

List va Dictionary ni aralashtirib ishlatish

Dictionary va list ma'lumot turlarini birga ishlatish sizga ma'lumotlarni yanada samarali saqlash va ishlash imkonini beradi. Masalan, siz har bir shaxs haqida ma'lumotlarni dictionary ichida saqlashingiz mumkin:

people = [
{"ism": "Ali", "yosh": 25},
{"ism": "Oyxun", "yosh": 30},
{"ism": "Zafar", "yosh": 22}
]

Bu usul orqali bir nechta shaxslar haqida ma'lumotlarni osonlik bilan saqlashingiz va ular ustida operatsiyalar o'tkazishingiz mumkin.

Misollar

Keling, dictionary ni hayotiy misolda ko'rib chiqamiz. Faraz qiling, sizda talabalar ro'yxati bor:

students = {
"Ali": {"yosh": 20, "kurs": "Dasturlash"},
"Oyxon": {"yosh": 21, "kurs": "Dasturlash"},
"Zafar": {"yosh": 22, "kurs": "Matematika"}
}

Bu yerda har bir talabaning ismi kalit sifatida, ularning yoshi va kursi esa qiymat sifatida saqlanadi. Endi, agar siz Alining yoshi haqida ma'lumot olishni istasangiz:

print(students["Ali"]["yosh"])  # 20 ni qaytaradi

Qiziqarli Faktlar

  • Python'da dictionary elementlari tartibga mos kelmaydi (Python 3.7 dan boshlab tartibli saqlanadi).
  • Dictionary'ni foydalanganda, kalitlar unikal bo'lishi shart, shuning uchun bir xil kalitni qayta kiritishga ruxsat berilmaydi.
  • Dictionary ni oson o'qish va tushunish uchun, ularni json formatida ko'rsatish mumkin.

Xulosa

Bugun biz set non-primitive turini o'tdik, uning asosiy funksiyalari haqida ma'lumot oldik va amaliy misollar orqali tushunishni chuqurlashtirdik. Setlar va listlar o'rtasidagi farqlarni ko'rib chiqdik.

Dictionary - dasturlashda ma'lumotlarni samarali saqlash uchun qulay vosita. Uning asosiy funksiyalarini bilish orqali siz dasturlash jarayonini osonlashtirasiz. Dictionary va list ma'lumotlarini birga ishlatish esa sizga ma'lumotlarni yanada boyitadi.

Savollar va Javoblar

  1. Dictionary nima?
    • Dictionary - bu kalit-qiymat juftliklaridan tashkil topgan ma'lumot turi.
  2. pop() funksiyasi qanday ishlaydi?
    • pop() funksiyasi berilgan kalit bo'yicha qiymatni olib tashlaydi va uni qaytaradi.
  3. Dictionary ichida kalitlar bir xil bo'lishi mumkinmi?
    • Yo'q, kalitlar unikal bo'lishi shart.
  4. Dictionary va list ni qanday birga ishlatish mumkin?
    • List ichida bir nechta dictionary saqlab, har bir dictionary ichida kalit-qiymat juftliklarini saqlashingiz mumkin.