2.1 Lambda-funksiyaların təyini
Lambda-funksiyalar, həmçinin anonim funksiyalar kimi tanınır. Bunlar adı olmayan, qısa, birsətrlik funksiyalardır və lambda
açar sözü ilə yaradılır.

Adi funksiyalardan fərqli olaraq, hansılar ki def
açar sözü ilə təyin olunur, lambda-funksiyalar "uçan-qaçan" yaradılır və adətən, sadə, bir sətirdə icra olunan əməliyyatlar üçün istifadə olunur.
Lambda-funksiyanın sintaksisi lambda
açar sözü, onun arxasınca arqumentlər, iki nöqtə və ifadədən ibarətdir:
lambda arqumentlər: ifadə
Lambda-funksiyalar istənilən sayda arqument qəbul edə bilər, lakin yalnız bir ifadədən ibarət olur. Bu ifadənin dəyəri avtomatik olaraq qaytarılır.
Nümunələr:
Lambda-funksiya | Adi funksiya |
---|---|
|
|
|
|
|
|
2.2 Lambda-funksiyaların tətbiqi
Lambda-funksiyalar adətən map()
, filter()
və sorted()
kimi digər funksiyalarla birlikdə istifadə olunur, həmçinin digər funksiyalara arqument kimi verilir.
map()
ilə istifadə
map()
funksiyası verilmiş funksiyanı hər bir elementə tətbiq edir və nəticələri olan iterator qaytarır. Lambda-funksiyalar map()
ilə istifadə üçün əladır, çünki elementləri çevirmək üçün qısa bir şəkildə funksiyanı təyin etməyə imkan verir.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # Çıxış: [1, 4, 9, 16, 25]
filter()
ilə istifadə
filter()
funksiyası iterator qaytarır, burada yalnız verilmiş funksiyanın True qaytardığı elementlər daxildir. Lambda-funksiyalar filtr üçün şərtləri tez təyin etməyə imkan verir.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # Çıxış: [2, 4, 6, 8, 10]
sorted()
ilə istifadə
sorted()
funksiyası iteratorun elementlərini sıralayır. Lambda-funksiyalar key
arqumenti ilə xüsusi sıralama kriteriyasını təyin etmək üçün istifadə olunur.
words = ["banana", "apple", "cherry", "date"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # Çıxış: ['date', 'apple', 'banana', 'cherry']
Lambda-funksiyalar ifadələrdə
Lambda-funksiyaları digər ifadələrdə, məsələn siyahı ifadələrində və dictionary generatorlarında istifadə etmək mümkündür.
pairs = [(1, 'bir'), (2, 'iki'), (3, 'üç'), (4, 'dörd')]
pairs.sort(key=lambda pair: pair[1])
print(pairs) # Çıxış: [(4, 'dörd'), (1, 'bir'), (3, 'üç'), (2, 'iki')]
2.3 Lambda-funksiyalar üçün məhdudiyyətlər
Lambda-funksiyaların adi funksiyalarla müqayisədə bir neçə məhdudiyyəti var:
İfadələrlə məhdudiyyət:
Lambda-funksiyalar yalnız bir ifadə tuta bilər və dövrlər və ya axın idarə operatorları (if
, else
və s.) kimi kompleks operatorları daxil edə bilməz.
Dokumentasiyanın olmaması:
Lambda-funksiyalar dokumentasiya sətiri (docstring) daxil edə bilmir, bu da onların funksionallığını sənədləşdirməyi çətinləşdirir.
Debug imkanlarının məhdudluğu:
Adın və dokumentasiyanın olmaması səbəbindən lambda-funksiyaları adi funksiyalarla müqayisədə debug etmək daha çətindir.
Lambda-funksiyalar üçün məhdudiyyət nümunəsi
Lambda-funksiyada bir neçə ifadə istifadə etməyə çalışmaq sintaksis xətasına səbəb olacaq:
# Bu kod xəta verəcək
invalid_lambda = lambda x: x ** 2; print(x)
GO TO FULL VERSION