⬅️ Bosh sahifaga

🐍 Python Set'lar

Unique elements, union, intersection, difference

⏱️ 2 soat (120 daqiqa)

📋 Dars rejasi:

  • Set tushunchasi va yaratish (20 daqiqa)
  • Unique elements va metodlar (20 daqiqa)
  • Union, intersection, difference (25 daqiqa)
  • Amaliy mashqlar (25 daqiqa)
  • Xulosa va uy vazifasi (20 daqiqa)
  • Savollar (10 daqiqa)

🧮 Set nima?

Set'ning xususiyatlari:

  • Takrorlanmaydigan elementlar
  • Tartibsiz to'plam
  • O'zgaruvchan (mutable)
  • Indeks yo'q
  • Matematik operatsiyalar
# Oddiy misol sonlar = {1, 2, 2, 3, 4, 4} print(sonlar) # {1, 2, 3, 4} # Uzunlik print(len(sonlar)) # 4

💡 Set vs List: Set'lar takrorlanmaydigan va tartibsiz, List'lar tartibli va takrorlanadigan!

🛠️ Set yaratish usullari

# 1. To'g'ridan-to'g'ri yaratish mevalar = {"olma", "banan", "anor"} print(mevalar) # {'olma', 'banan', 'anor'} # 2. List'dan set yaratish raqamlar = [1, 2, 2, 3, 5, 5, 6] unique_raqamlar = set(raqamlar) print(unique_raqamlar) # {1, 2, 3, 5, 6} # 3. String'dan set yaratish matn = "salom" harflar = set(matn) print(harflar) # {'s', 'a', 'l', 'o', 'm'} # 4. Bo'sh set yaratish bo'sh_set = set() # To'g'ri # {} - Bu dictionary!

⚙️ Set metodlari

Element qo'shish:

mevalar = {"olma", "banan"} # Bitta element qo'shish mevalar.add("uzum") # Bir necha element qo'shish mevalar.update(["nok", "anor"]) print(mevalar)

Element o'chirish:

# remove() - xato beradi mevalar.remove("banan") # discard() - xato bermaydi mevalar.discard("olma") # pop() - tasodifiy o'chiradi element = mevalar.pop() # clear() - hamma o'chiradi mevalar.clear()

🏃‍♂️ Mashq 1

⏱️ 5 daqiqa

Topshiriq:

[1, 3, 3, 5, 7, 7, 9] listini set'ga aylantiring va:

  • Natijani ekranga chiqaring
  • Set'ga 10 ni qo'shing
  • Set'dan 5 ni o'chiring
# Sizning yechimingiz: raqamlar = [1, 3, 3, 5, 7, 7, 9] set_raqamlar = set(raqamlar) print(set_raqamlar) # {1, 3, 5, 7, 9} set_raqamlar.add(10) print(set_raqamlar) # {1, 3, 5, 7, 9, 10} set_raqamlar.discard(5) print(set_raqamlar) # {1, 3, 7, 9, 10}

🔄 Union (Birlashtirish)

Sintaksis:

set1 = {1, 2, 3, 4} set2 = {3, 4, 5, 6} # | operatori result = set1 | set2 # union() metodi result = set1.union(set2) print(result) # {1, 2, 3, 4, 5, 6}

🧠 Eslab qoling:

Union ikki set'dagi barcha elementlarni birlashtiradi, takroriy elementlar faqat bir marta olinadi.

A ∪ B = {1, 2, 3, 4, 5, 6}

🔗 Intersection (Kesishish)

Sintaksis:

set1 = {1, 2, 3, 4} set2 = {3, 4, 5, 6} # & operatori result = set1 & set2 # intersection() metodi result = set1.intersection(set2) print(result) # {3, 4}

🧠 Eslab qoling:

Intersection ikki set'da umumiy bo'lgan elementlarni qaytaradi.

A ∩ B = {3, 4}

➖ Difference (Farq)

Sintaksis:

set1 = {1, 2, 3, 4} set2 = {3, 4, 5, 6} # - operatori result = set1 - set2 # difference() metodi result = set1.difference(set2) print(result) # {1, 2} print(set2 - set1) # {5, 6}

🧠 Eslab qoling:

Difference birinchi set'da bor, lekin ikkinchi set'da yo'q elementlarni qaytaradi.

A - B = {1, 2}

🏃‍♂️ Mashq 2

⏱️ 5 daqiqa

Topshiriq:

Quyidagi set'lar bilan ishlang:

set1 = {"olma", "banan", "anor"} set2 = {"banan", "uzum", "nok"}
  • Ikkalasini birlashtiring
  • Umumiy elementlarni toping
  • set1'da bor, lekin set2'da yo'q elementlarni toping

🌟 Amaliy misollar

# 1. Ikki guruh o'quvchilarning umumiy fanlarini topish guruh1 = {"matematika", "fizika", "kimyo", "biologiya"} guruh2 = {"matematika", "tarix", "adabiyot", "kimyo"} umumiy_fanlar = guruh1 & guruh2 print(f"Umumiy fanlar: {umumiy_fanlar}") # 2. Do'konlardagi mahsulotlarni taqqoslash do'kon1 = {"non", "sut", "tuxum", "go'sht"} do'kon2 = {"non", "meva", "tuxum", "baliq"} # Barcha mahsulotlar barcha = do'kon1 | do'kon2 print(f"Barcha mahsulotlar: {barcha}") # Faqat birinchi do'konda faqat_birinchi = do'kon1 - do'kon2 print(f"Faqat 1-do'konda: {faqat_birinchi}")

💪 Katta mashq

⏱️ 15 daqiqa

Vazifa: Maktab fanlarini boshqarish tizimi

Quyidagi ma'lumotlar berilgan:

# 3 ta sinf va ularning fanlari sinf_10a = {"matematika", "fizika", "kimyo", "biologiya", "tarix"} sinf_10b = {"matematika", "fizika", "adabiyot", "geografiya", "tarix"} sinf_10v = {"kimyo", "biologiya", "adabiyot", "ingliz_tili", "tarix"}
  • Barcha sinflarda o'qitiladigan fanlarni toping
  • Umumiy fanlarni toping
  • Faqat 10A sinfida o'qitiladigan fanlarni toping
  • 10A va 10B da bor, lekin 10V da yo'q fanlarni toping

💡 Foydali maslahatlar

✅ Yodda tuting:

  • Set'lar tartibsiz
  • Takrorlanmaydigan elementlar
  • O'zgaruvchan (mutable)
  • Indeks yo'q
  • Tez qidiruv (O(1))

🚀 Qachon ishlatish:

  • Takrorlarni olib tashlash
  • Matematik operatsiyalar
  • Tez qidiruv
  • To'plamlar munosabati
  • Unique elementlar

🎯 Set'lar - dasturlashda juda muhim va foydali struktura!

🏠 Uy vazifasi

⏱️ Uyda bajarish

Vazifa 1:

# [3, 3, 5, 7, 7, 9, 11] listini set'ga aylantiring # Set'ga 13 ni qo'shing # Set'dan 5 ni o'chiring

Vazifa 2:

set1 = {"qalam", "ruchka", "kitob"} set2 = {"kitob", "daftar", "o'chirg'ich"} # Union, intersection, difference operatsiyalarini bajaring

Vazifa 3:

# ["a", "b", "b", "c", "d", "d"] listini set'ga aylantiring # {"b", "d", "f"} bilan farqini toping

🔜 Keyingi dars

📚 Dictionary: Kalit-qiymat juftligi

  • Dictionary tushunchasi
  • Kalit-qiymat juftligi
  • Looplar orqali iteratsiya
  • get() metodi
  • Dictionary metodlari

🎉 Ajoyib ish! Set'larni o'rgandingiz!

❓ Savollar

Savollaringiz bormi?

💭 Bugun nimalarni o'rgandik?

  • Set'lar nima va qanday yaratiladi?
  • Union, intersection, difference qanday ishlaydi?
  • Set'larni qachon ishlatish foydali?
  • Set va List orasidagi farq nima?

🚀 Muvaffaqiyatlar tilayman!

1 / 15