Lambda funksiyasi bilan tanishish
Pythonda, lambda funksiyasi — funksiya nomiga ega bo'lmagan maxsus turdagi funksiya. Masalan,
lambda : print('Hello World')
Bu yerda, biz 'Hello World'ni chop etuvchi lambda funksiyasini yaratdik.
Lambdalar haqida o'rganishdan oldin, Python Functions haqida bilishingizga ishonch hosil qiling.
Lambda funksiyasini yaratish uchun def o'rniga lambda kalit so'zidan foydalanamiz. Mana lambda funksiyasini e'lon qilish sintaksisi:
lambda argument(lar) : ifoda
Bu yerda,
argument(lar) - lambda funksiyasiga uzatiladigan har qanday qiymatifoda - ifoda bajariladi va qaytariladiKeling, bir misolni ko'ramiz,
greet = lambda : print('Hello World')
Bu yerda, biz lambda funksiyasini aniqladik va uni greet nomli o'zgaruvchiga berdik.
Bu lambda funksiyasini bajarish uchun, uni chaqirishimiz kerak. Mana lambda funksiyasini qanday chaqirish mumkin
# lambda'ni chaqirish
greet()
Yuqoridagi lambda funksiyasi shunchaki 'Hello World' matnini chop etadi.
Eslatma: Bu lambda funksiyasi hech qanday argumentga ega emas.
Misol: Python lambda funksiyasi
# lambda funksiyasini e'lon qilish
greet = lambda : print('Hello World')
# lambda funksiyasini chaqirish
greet()
# Natija: Hello World
Yuqoridagi misolda, biz lambda funksiyasini aniqladik va uni greet o'zgaruvchisiga berdik.
Lambda funksiyasini chaqirganimizda, lambda funksiyasi ichidagi print() operatori bajariladi.
Oddiy funksiyalar kabi, lambda funksiyasi ham argumentlarni qabul qilishi mumkin. Masalan,
# bitta argumentni qabul qiluvchi lambda
greet_user = lambda name : print('Hey there,', name)
# lambda chaqiruvi
greet_user('Delilah')
# Natija: Hey there, Delilah
Yuqoridagi misolda, biz lambda funksiyasini greet_user o'zgaruvchisiga berdik.
Bu yerda, lambda kalit so'zidan keyingi name lambda funksiyasi name nomli argumentni qabul qilishini belgilaydi.
Lambda funksiyasining chaqiruviga e'tibor bering,
greet_user('Delilah')
Bu yerda, biz lambda funksiyamizga 'Delilah' satr qiymatini uzatdik.
Nihoyat, lambda funksiyasi ichidagi operator bajariladi.
lambda funksiyasini filter() bilan qanday ishlatish mumkin?
Pythondagi filter() funksiyasi funksiya va iterable (ro'yxatlar, kortejlar va satrlar)ni argument sifatida oladi.
Funksiya ro'yxatdagi barcha elementlar bilan chaqiriladi va yangi ro'yxat qaytariladi, unda funksiya True deb baholaydigan elementlar bo'ladi.
Keling, bir misolni ko'ramiz,
# ro'yxatdan faqat juft elementlarni filtrlovchi dastur
my_list = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(filter(lambda x: (x%2 == 0) , my_list))
print(new_list)
# Natija: [4, 6, 8, 12]
Bu yerda, filter() funksiyasi ro'yxatdan faqat juft sonlarni qaytaradi.
lambda funksiyasini map() bilan qanday ishlatish mumkin?
Pythondagi map() funksiyasi funksiya va iterable (ro'yxatlar, kortejlar va satrlar)ni argument sifatida oladi.
Funksiya ro'yxatdagi barcha elementlar bilan chaqiriladi va yangi ro'yxat qaytariladi, unda o'sha funksiya har bir element uchun qaytargan elementlar bo'ladi.
Keling, bir misolni ko'ramiz,
# map() yordamida ro'yxatdagi har bir elementni ikki barobarga oshiruvchi dastur
my_list = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(map(lambda x: x * 2 , my_list))
print(new_list)
# Natija: [2, 10, 8, 12, 16, 22, 6, 24]
Bu yerda, map() funksiyasi ro'yxatdagi barcha elementlarni ikki barobarga oshiradi.
Ko'proq o'qing: Python List Comprehension