🐍 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!