Python lambda funksiyalari
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!
