🐍
Python Lambda Functions
Tushuncha, real hayotdagi misollar
Assalomu alaykum, yosh dasturchilar! 😊
Bugun biz Python'da lambda funksiyalar haqida o'rganamiz
⏱️ Dars davomiyligi: 2 soat (120 daqiqa)
📅 Dars rejasi
- 🎯 Kirish va Lambda tushunchasi - 20 daqiqa
- ⚡ Lambda funksiyalarni yaratish va ishlatish - 25 daqiqa
- 🌍 Real hayotdagi misollar - 20 daqiqa
- 💻 Amaliy mashqlar - 25 daqiqa
- 📝 Xulosa va uy vazifasi - 20 daqiqa
- ❓ Qayta aloqa va savollar - 10 daqiqa
🤔 Lambda funksiyalar nima?
🔤 Oddiy funksiya
def yigindi(a, b):
return a + b
print(yigindi(3, 4)) # 7
⚡ Lambda funksiya
yigindi_lambda = lambda a, b: a + b
print(yigindi_lambda(3, 4)) # 7
Lambda funksiyalar - bu anonim (nomsiz) funksiyalar
📝 Lambda sintaksisi
lambda argumentlar: ifoda
Oddiy misol
kvadrat = lambda x: x ** 2
print(kvadrat(5)) # 25
To'g'ridan-to'g'ri ishlatish
print((lambda x: x * 2)(5)) # 10
Mashq: lambda x, y: x - y funksiyasini yaratib, (10, 4) argumentlari bilan chaqiring
⏰ 5 daqiqa vaqt!
🗺️ map() bilan ishlatish
Ro'yxatdagi har bir elementga bir xil amal qo'llash uchun:
sonlar = [1, 2, 3, 4]
natija = list(map(lambda x: x * 2, sonlar))
print(natija) # [2, 4, 6, 8]
🧮 Boshqa misollar:
# Kvadratga oshirish
kvadratlar = list(map(lambda x: x**2, [1, 2, 3, 4]))
print(kvadratlar) # [1, 4, 9, 16]
# Matnlarni katta harflarga o'tkazish
ismlar = ["ali", "zilola", "sardor"]
katta_harflar = list(map(lambda x: x.upper(), ismlar))
print(katta_harflar) # ['ALI', 'ZILOLA', 'SARDOR']
🔍 filter() bilan ishlatish
Shart bo'yicha elementlarni saralash uchun:
sonlar = [1, 2, 3, 4, 5, 6]
juft_sonlar = list(filter(lambda x: x % 2 == 0, sonlar))
print(juft_sonlar) # [2, 4, 6]
Musbat sonlar
sonlar = [-2, -1, 0, 1, 2]
musbat = list(filter(lambda x: x > 0, sonlar))
print(musbat) # [1, 2]
Uzun so'zlar
sozlar = ["salom", "dunyo", "hi", "hello"]
uzun_sozlar = list(filter(lambda x: len(x) > 3, sozlar))
print(uzun_sozlar) # ['salom', 'dunyo', 'hello']
📊 sorted() bilan tartiblash
talabalar = [("Ali", 85), ("Zilola", 92), ("Sardor", 78)]
tartiblangan = sorted(talabalar, key=lambda x: x[1])
print(tartiblangan)
# [('Sardor', 78), ('Ali', 85), ('Zilola', 92)]
🏆 Teskari tartibda (eng yaxshidan)
eng_yaxshi = sorted(talabalar, key=lambda x: x[1], reverse=True)
print(eng_yaxshi)
# [('Zilola', 92), ('Ali', 85), ('Sardor', 78)]
key=lambda x: x[1] - ikkinchi elementga qarab tartiblash
🎓 Real hayot misoli: Talabalar ro'yxati
talabalar = [
{"ism": "Ali", "ball": 85},
{"ism": "Zilola", "ball": 92},
{"ism": "Sardor", "ball": 78}
]
# Ball bo'yicha tartiblash (eng yaxshidan)
tartiblangan = sorted(talabalar, key=lambda x: x["ball"], reverse=True)
print(tartiblangan)
📊 Natija:
[
{'ism': 'Zilola', 'ball': 92},
{'ism': 'Ali', 'ball': 85},
{'ism': 'Sardor', 'ball': 78}
]
💡 O'quv markazlarida talabalarni baholar bo'yicha tartiblashda ishlatiladi
🛒 Real hayot misoli: Chegirmalar
narxlar = [10000, 20000, 30000, 40000]
chegirma = 0.1 # 10% chegirma
yangi_narxlar = list(map(lambda x: x * (1 - chegirma), narxlar))
print(yangi_narxlar)
# [9000.0, 18000.0, 27000.0, 36000.0]
💰 Turli chegirmalar
# 20% chegirma
katta_chegirma = list(map(lambda x: x * 0.8, narxlar))
# Soliq qo'shish (12%)
soliq_bilan = list(map(lambda x: x * 1.12, narxlar))
🏪 Do'kon dasturlari
Mahsulot narxlariga chegirma qo'llash
Soliq hisoblash
Aksiya narxlarini belgilash
👥 Real hayot misoli: Foydalanuvchilarni filtrlash
foydalanuvchilar = [
{"ism": "Ali", "yosh": 20},
{"ism": "Zilola", "yosh": 16},
{"ism": "Sardor", "yosh": 25}
]
# 18+ foydalanuvchilar
kattalar = list(filter(lambda x: x["yosh"] >= 18, foydalanuvchilar))
print(kattalar)
📱 Ijtimoiy tarmoqlarda:
✅ Yosh bo'yicha foydalanuvchilarni filtrlash
✅ Kontentga ruxsat berish/bermash
✅ Maxsus funksiyalarni ochish
# Natija:
[{'ism': 'Ali', 'yosh': 20}, {'ism': 'Sardor', 'yosh': 25}]
💻 Amaliy mashq 1
🎯 Vazifa:
lambda a, b: a * b + 2 funksiyasini yaratib, (3, 4) argumentlari bilan chaqiring
hisobla = lambda a, b: a * b + 2
print(hisobla(3, 4)) # ?
📊 Javob:
14 # (3 * 4 + 2 = 14)
⏰ 5 daqiqa vaqt!
💻 Amaliy mashq 2
🎯 Vazifa:
sonlar = [2, 3, 4, 5, 6] ro'yxati uchun:
- map() va lambda yordamida har bir sonni 3 ga ko'paytiring
- filter() va lambda yordamida faqat 4 dan katta sonlarni ajratib oling
sonlar = [2, 3, 4, 5, 6]
# 1. Har bir sonni 3 ga ko'paytirish
uchga_kopaytirish = list(map(lambda x: x * 3, sonlar))
# 2. 4 dan katta sonlarni filtrlash
katta_sonlar = list(filter(lambda x: x > 4, sonlar))
📊 Javoblar:
[6, 9, 12, 15, 18] # uchga_kopaytirish
[5, 6] # katta_sonlar
💻 Amaliy mashq 3
🎯 Vazifa:
odamlar = [{"ism": "Sardor", "yosh": 22}, {"ism": "Zilola", "yosh": 17}] ro'yxati uchun:
- Lambda yordamida yosh bo'yicha tartiblang
- Lambda yordamida 18 yoshdan katta odamlarni filtrlash
odamlar = [{"ism": "Sardor", "yosh": 22}, {"ism": "Zilola", "yosh": 17}]
# Yosh bo'yicha tartiblash
tartiblangan = sorted(odamlar, key=lambda x: x["yosh"])
# 18+ filtrlash
kattalar = list(filter(lambda x: x["yosh"] >= 18, odamlar))
📊 Javoblar:
# tartiblangan:
[{'ism': 'Zilola', 'yosh': 17}, {'ism': 'Sardor', 'yosh': 22}]
# kattalar:
[{'ism': 'Sardor', 'yosh': 22}]
🏠 Uy vazifasi
📝 Topshiriqlar:
- lambda x, y: x / y funksiyasini yaratib, (10, 2) bilan chaqiring
- sonlar = [10, 20, 30, 40] uchun har birini 5 ga bo'ling
- 25 dan katta sonlarni filtrlang
- Mahsulotlarni narx bo'yicha teskari tartibda tartiblang
mahsulotlar = [
{"nomi": "Televizor", "narxi": 3000000},
{"nomi": "Konditsioner", "narxi": 5000000}
]
# Sizning kodingiz...
📚 Keyingi dars: Python Map, Filter, Reduce
🎉 Xulosa
⚡
Lambda funksiyalar
Qisqa va ixcham
Bir qatorlik operatsiyalar uchun
🛠️
Qo'llanishi
map(), filter(), sorted() bilan
Real loyihalarda foydali
🎯
Eslab qoling
Murakkab logika uchun oddiy funksiya ishlatamiz
Lambda - faqat sodda operatsiyalar uchun
❓ Savollar bormi?
Lambda funksiyalar haqida tushunmovchilik bo'ldimi?
Real loyihada qanday ishlatgan bo'lardingiz?
Rahmat! Zo'r ish qildingiz! 👏