Python lambda funksiyalari


ULASHISH

Lambda funksiyalari

Lambda funksiyasi kichik anonim funksiyadir.

Lambda funksiyasi har qanday miqdordagi argumentlarni qabul qilishi mumkin, lekin faqat bitta ifodaga ega bo‘lishi mumkin.


Sintaksis

lambda arguments : expression

Ifoda bajariladi va natija qaytariladi:

Misol

a argumentiga 10 qo‘shing va natijani qaytaring:

x = lambda a : a + 10 print(x(5))
O‘zingiz sinab ko‘ring »

Lambda funksiyalari istalgan sondagi argumentlarni qabul qila oladi:

Misol

a argumentini b argumentiga ko‘paytiring va natijani qaytaring:

x = lambda a, b : a * b print(x(5, 6))
O‘zingiz sinab ko‘ring »

Misol

a, b va c argumentlarini qo‘shing va natijani qaytaring:

x = lambda a, b, c : a + b + c print(x(5, 6, 2))
O‘zingiz sinab ko‘ring »


Nega lambda funksiyalaridan foydalaniladi?

Lambda kuchi ularni boshqa funksiya ichida anonim funksiya sifatida ishlatganda yaxshiroq namoyon bo‘ladi.

Aytaylik, sizda bitta argumentni oladigan funksiya ta’rifi bor va bu argument noma’lum songa ko‘paytiriladi:

def myfunc(n):   return lambda a : a * n

Siz yuborgan sonni har doim ikki baravar oshiradigan funksiyani yaratish uchun ushbu funksiya ta’rifidan foydalaning:

Misol

def myfunc(n):   return lambda a : a * n mydoubler = myfunc(2) print(mydoubler(11))
O‘zingiz sinab ko‘ring »

Yoki siz yuborgan sonni har doim uch baravar oshiradigan funksiyani yaratish uchun bir xil funksiya ta’rifidan foydalaning:

Misol

def myfunc(n):   return lambda a : a * n mytripler = myfunc(3) print(mytripler(11))
O‘zingiz sinab ko‘ring »

Yoki ikkala funksiyani bitta dasturda yaratish uchun bir xil funksiya ta’rifidan foydalaning:

Misol

def myfunc(n):   return lambda a : a * n mydoubler = myfunc(2) mytripler = myfunc(3) print(mydoubler(11)) print(mytripler(11))
O‘zingiz sinab ko‘ring »

Anonim funksiya qisqa vaqt uchun kerak bo‘lganda lambda funksiyalaridan foydalaning.


Lambda’ni o‘rnatilgan funksiyalar bilan ishlatish

Lambda funksiyalari odatda map(), filter() va sorted() kabi o‘rnatilgan funksiyalar bilan qo‘llaniladi.

Lambda’dan map() bilan foydalanish

map() funksiyasi iteratsiya qilinadigan obyektning (iterable) har bir elementiga funksiyani qo‘llaydi:

Misol

Ro‘yxatdagi barcha sonlarni ikki barobar oshiring:

numbers = [1, 2, 3, 4, 5] doubled = list(map(lambda x: x * 2, numbers)) print(doubled)
O‘zingiz sinab ko‘ring »

Lambda’dan filter() bilan foydalanish

filter() funksiyasi funksiya True qaytaradigan elementlar ro‘yxatini yaratadi:

Misol

Ro‘yxatdan toq sonlarni filtrlab oling:

numbers = [1, 2, 3, 4, 5, 6, 7, 8] odd_numbers = list(filter(lambda x: x % 2 != 0, numbers)) print(odd_numbers)
O‘zingiz sinab ko‘ring »

Lambda’dan sorted() bilan foydalanish

sorted() funksiyasi maxsus saralash uchun kalit sifatida lambdadan foydalanishi mumkin:

Misol

Tuplelar ro‘yxatini ikkinchi element bo‘yicha tartiblang:

students = [("Emil", 25), ("Tobias", 22), ("Linus", 28)] sorted_students = sorted(students, key=lambda x: x[1]) print(sorted_students)
O‘zingiz sinab ko‘ring »

Misol

Stringlarni uzunligi bo‘yicha tartiblang:

words = ["apple", "pie", "banana", "cherry"] sorted_words = sorted(words, key=lambda x: len(x)) print(sorted_words)
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!