def is_odd(number):
return number % 2 > 0 # sayının 2 ye bölümünden kalan 0 dan büyüktür önermesini döndür.
yerine
is_odd = lambda number : number % 2 > 0 # döndürülecek değer de : işaretinden sonra yazılıyor.
^ parametreler
burada
sıralanıyor.
Şeklinde yazabiliriz. Lambda fonksiyonları tanımlarken virgül koyarak birden fazla parametre belirleyebiliriz
Örneğin aşağıdaki fonksiyon 2 kenar açısını parametre olarak alıp üçgenin 3. açısını döndürüyor.
find_angle = lambda a, b : 180 - (a + b)
print find_angle(30,60)
90
Abartıp lambda fonksiyonları tanımlarken argüman tipi parametreler oluşturabiliriz.
find_angle = lambda a = 10 ,b = 20 : 180 -(a , b)
print find_angle(a=50) # b yi belirtmediğimiz için default değeri 20 kabul edilecek
110
özetle şunu kafanıza kazıyın : lambda parametreler : döndürülecek sonuç
Aynı zamanda lambda ile pythonic kod yazmak bize zaman kazandırır.
YanıtlaSilÖrneğin bir listedeki çift sayıları almak istiyorsak:
---------- (code tagına izin verilmiyor)
#0'dan verilen sayıya kadar olan (sayı hariç) çift sayıları döndürür.
cift_sayilar = lambda n : filter((lambda x: x%2==0), range(n))
----------
Burada lambda ve filter gibi güçlü iki fonksiyonu birleştirdik. İstersek lambda ve map'i de birleştirebiliriz. Zaten lambda, map ve filter Python'un Lisp dilinden aldığı en önemli miraslardır.