Python Lambda

Python Lambda funksiyaları nədir?

Python Lambda funksiyaları funksiyaları heç bir adı yoxdur. Buna görə də adsız və ya adsız funksiyalar kimi tanınırlar. 'Lambda' sözü açar sözdür. 'Lambda' açar sözünü izləyən funksiya anonimdir.

Funksiyalar Vs Lambda funksiyaları:

  • Python'da normal funksiyaları təyin etmək üçün 'def' açar sözündən istifadə edirik. Anonim funksiyaları təyin etmək üçün 'lambda' açar sözündən istifadə edirik.
  • Lambda funksiyası istənilən sayda arqumentə sahib ola bilər, lakin ifadə şəklində yalnız bir dəyəri qaytara bilər. Python lambda funksiyaları sintaktik olaraq tək bir ifadə ilə məhdudlaşdırılmışdır.

Python Lambda Funksiyaları niyə istifadə olunur?

  • Lambda funksiyaları yalnız bir dəfə bir funksiyaya ehtiyac duyduğumuz zaman şəkilə gəlir.
  • Python Lambda funksiyaları tez-tez istifadə olunur daxili funksiyalar filter (), map (), azalt () və s. kimi
  • Lambda funksiyalarından istifadə normal funksiyalarla müqayisədə kod sətirlərinin sayını azaldır.

Sintaksis:

lambda arguments:expression

Artıq qeyd edildiyi kimi, bir lambda funksiyası tək bir ifadədən başqa hər hansı bir arqument qəbul edə bilər. Buna görə arqumentlərin sayı 0-dan hər hansı bir ədədə qədərdir.

Nümunələr:

Tək bir dəlil ilə:

Burada bir ədədin kvadrat kökünü çap etmək üçün bir nümunə var.

a=lambda x:x**(1/2)
print(a(225))
15.0

x - arqumentdir.

x ** (1/2) - qiymətləndirilən ifadə.

lambda x: x ** (1/2) - funksiya obyektini qaytaran anonim funksiya.

>>> print(lambda x: x**(1/2))
<function <lambda> at 0x048388A0>

Çoxsaylı arqumentlərlə:

Aşağıda birdən çox parametr qəbul edən bir piton lambda funksiyasının nümunəsi verilmişdir.

a=lambda a,b,c:a+b+c
print(a(3,10,12))
25

Daha çox sətir alacaq normal funksiyaları istifadə edərək eyni nümunəni yazdığımızda. Məsələn,

def func(a,b,c):
    return a+b+c

print(func(3,10,12))

Bu sualı lambda adsız funksiyalar deyəndə niyə lambda funksiyasını bəzi dəyişənlərə təyin etməli olduğumuzu və dəyişən istifadə edərək lambda funksiyasını çağırmağımızı tələb edə bilərsiniz. Ümumiyyətlə, lambda funksiyalarını daha yüksək sifarişli funksiyalar və filtr, xəritə, azalt və s. Kimi daxili funksiyalardan istifadə edirik.

Lambda normal funksiyaları ilə işləyir:

def func(x):
    return lambda :x*x

a=func(4)
b=func(5)
print(a())
print(b())
16
25

Yuxarıdakı nümunədə func () funksiyası lambda funksiyasını qaytarır. Func () dedikdə lambda funksiyasından istifadə edirik.

filtr ilə lambda funksiyası:

Süzgəc funksiyası, təkrarlanan funksiyanı başqa bir funksiyanın köməyi ilə süzgəcdən keçirir. Süzgəc funksiyası təkrarlanan və təkrarlananları bir arqument kimi süzmək funksiyasını alır.

Sintaksis:

filter(function, iterable)

Misal:

Siyahıdakı cüt ədədləri süzmək üçün bir nümunəyə baxaq.

l=[7,4,9,2,3,8,5,12,10]
new_l=list(filter(lambda a:a%2==0,l))
print(new_l)
[4, 2, 8, 12, 10]

xəritə ilə lambda funksiyası:

Xəritə funksiyası təkrarlana bilən bütün dəyərlərə bir funksiya tətbiq edir. Xəritə xəritəsi funksiyası təkrarlana bilən və təkrarlana bilən funksiyanı bir arqument kimi qəbul edir.

Sintaksis:

map(function, iterable)

Misal:

Xəritə funksiyasından istifadə edərək cüt nömrələri siyahıdan əldə edin.

l=[12,14,3,9,15,25]
new_list = list(map(lambda x: (x%2 == 0), l))
print(new_list)
[True, True, False, False, False, False]

azaltmaq ilə lambda funksiyası:

Kiçiltmə funksiyası təkrarlanan bütün dəyərlərə bir funksiya tətbiq edir və tək bir ədədi qaytarır. Azaltma funksiyası funksiyanı və təkrarlananı bir arqument kimi qəbul edir.

Sintaksis:

reduce(function, iterable)

Misal:

Bir siyahıda bütün nömrələrin məhsulunu əldə edin.

from functools import reduce

l=[12,14,3,9,15,25]
product=reduce((lambda x,y:x*y), l)
print(product)
1701000
Translate »