Python programlaşdırma dilində Anonymous və ya Lambda funksiyalar

Nigar
Pragmatech

--

Bu məqalədə Pythonda anonymous funksiyalardan və ya başqa adla desək lambda funksiyalardan bəhs edilir. Lambda funksiyanın nə olduğu , onun hansı sintaksislə yazıldığı və onların necə istifadə olunduğu örnəklərlə qeyd ediləcək.

Pythonda Anonymous funksiyalar nədir?

Kod yazarkən funksiyadan istifadə etmək həm bizim eyni kodları təkrar-təkrar yazmağımızın qarşısını alır , həm də kodumuzun daha oxunaqlı və başa düşülən olmasını təmin edir. Pythonda anonymous funksiyalar hər hansı bir ad verilmədən yaradılınan funksiyalardır. Normalda funksiyalar Pythonda def açar sözü ilə yaradılmağına baxmayaraq, anonymous funksiyalar lambda açar sözü vasitəsi ilə yaradılır. Buna görə də anonymous funksiyalar həmçinin lambda funksiyalar olaraq da tanınır.Bu funksiyanın ən önəmli xüsusiyyətlərindən biri onun tək sətirdən ibarət olmasıdır.

Pythonda Anonymous funksiyaların yazılış şəkli

lambda arguments: expression

Bu funksiyalarda arqumentlər istənilən sayda ola bilər ancaq ifadə (expression ) yalnız bir sətirlik olmalıdır.

Pythonda Anonymous funksiyalara örnəklər

Pythonda lambda funksiyaların istifadəsinə dair örnəklərə keçid edə bilərik.

a= lambda x: x+5print(a(5))

Nəticə

10

Yuxarıda qeyd olunan kod parçasında , lambda x: x * 2- lambda funksiyadır. Burada x-arqument, x*2 isə- expressiondır. Expressionda qeyd edilən əməliyyatlar yerinə yetirildikdən sonra nəticəsi bizə dəyər olaraq qaytarılır. Koddan da göründüyü kimi bu funksiyanın adı yoxdur. Onun qaytardığı dəyər isə a dəyişəninə mənimsədilir . Daha aydın olması üçün aşağıdakı şəkildə funksiyanı yaza bilərik.

def a(x):
return x + 5

Bu funksiya ilə bizim lambda funksiyamız eyni işi yerinə yetirir və eyni dəyəri qaytarır.

Pythonda Anonymous funksiyaların istifadəsi

Qısa zaman ərzində hər hansı əməliyyatı yerinə yetirmək istədikdə Lambda funksiyalara ehtiyac duyulur. Əsasən Pythonda , digər funksiyaların arqumenti olaraq bu funksiyalardan istifadə edirik. Həmçinin kitabxanın daxilində olan filter(), map() kimi built-in funksiyalarla da birgə istifadə olunur.

Filter() funksiyası ilə istifadəsinə örnəklər

filter() funksiyası 2 parametr qəbul edir:

  1. funksiya
  2. list, set, tuple

Aşağıdakı örnəkdə lambda funksiya vasitəsi ilə my_listin hər bir elementinin cüt ədəd olub olmadığı yoxlanılır və True qaytarılan elementlər üçün new_list adlı siyahı yaradılıb elementlər əlavə olunur.


my_list = [7, 9, 2, 4 , 6, 8, 13, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

print(new_list)

Nəticə

[2, 4, 6, 8, 12]

Map() funksiyası ilə istifadəsinə örnəklər

map() funksiyasının parametrləri filter() funksiyasında olduğu kimidir.

Bu örnəkdə listin bütün elementləri üçün lambda funksiyadakı əməliyyat (elementlərin 2-yə vurulması) yerinə yetirildikdən sonra onlar yeni listə yığılır.

my_list = [7, 9, 2, 4 , 6, 8, 13, 3, 12]

new_list = list(map(lambda x: x * 2 , my_list))

print(new_list)

Nəticə

[14, 18, 4, 8, 12, 16, 26, 6, 24]

Bütün bu örnəklərdən gördüyümüz kimi lambda funksiyaların istifadəsi çox pratikdir. Normal funksiyalardan əldə etdiyimiz funksionallığı lambda funksiyalar vasitəsi ilə daha tez bir müddətdə əldə edə bilərik. Ancaq normal funksiyalar bu funksiyalarla müqayisədə daha oxunaqlıdır. Lambda funksiyalar kimi normal funksiyaları da tək sətirdə yaza bilərik, lakin bu yazılış şəkli çox istifadə olunmur.

Mənbə

  1. https://www.programiz.com/python-programming/methods/built-in/filter
  2. https://www.programiz.com/python-programming/methods/built-in/map
  3. https://www.programiz.com/python-programming/anonymous-function
  4. https://www.yazilimbilimi.org/python-lambda-function-lambda-fonksiyonlar/
  5. https://python-istihza.yazbel.com/ileri_fonksiyonlar.html
  6. https://www.pythondersleri.com
  7. https://www.mobilhanem.com/lambda/

--

--