Bu konuda lambda ifadelerini(expression) öğrenmeye çalışacağız. lambda ifadeleri fonksiyonlarımızı oluşturmak için Pythonda bulunan pratik bir yöntemdir ve gerektiği yerlerde bu ifadeleri kullanabiliriz. Biliyorsunuz listelerimizi oluşturmak için List Comprehension yöntemini kullanabiliyorduk. İsterseniz List Comprehension yöntemini hatırlayalım.
liste1 = [1,2,3,4,5]
liste2 = list()
for i in liste1: # Bu klasik liste oluşturma yöntemi
liste2.append(i*2)
print(liste2)
[2, 4, 6, 8, 10]
liste3 = [1,2,3,4,5]
liste4 = [i * 2 for i in liste3] # List Comprehension
print(liste4)
[2, 4, 6, 8, 10]
Aynı buradaki gibi bir fonksiyonu da tek satır halinde lambda ifadeleriyle oluşturabiliriz. İlk önce yapısına bakalım sonra örneklerimize geçelim.
etiket = lambda parametre1,parametre2.... : İşlem
Bu yapıdan henüz bir şey anlamamış olabiliriz. İsterseniz örneklerimizle *lambda ifadelerini* anlamaya çalışalım. Bir tane iki ile çarpma görevini yerine getiren fonksiyon yazalım.
def ikiyleçarp(x): # Klasik fonksiyon tanımlama
return x * 2
print(ikiyleçarp(2))
4
# Şimdi de bu fonksiyonu lambda ifadelerini kullanarak tek satırda yazalım.
ikiyleçarp = lambda x : x * 2 # x parametre x* 2 return ifadesi ve ikiyleçarp değeri de bir etikettir(değişken gibi düşünelim)
ikiyleçarp(3) # Buradaki 3 argümanı lambda ifadesindeki x'in yerine geçiyor.
6
def toplama(a,b,c):
return a + b + c
print(toplama(3,4,5))
12
topla = lambda x,y,z : x + y + z
print(topla(3,4,5))
12
# Stringi ters çevirme
def terscevir(s):
return s[::-1]
print(terscevir("Python Programlama"))
amalmargorP nohtyP
ters = lambda s : s[::-1]
print(ters("Python Programlama"))
amalmargorP nohtyP
# çift mi
def çiftmi(sayı):
return ( sayı % 2 == 0 )
print(çiftmi(12))
True
print(çiftmi(13))
False
çifttek = lambda sayı : sayı % 2 == 0
çifttek(34)
True
çifttek(13)
False
İşte lambda ifadesini bu şekilde küçük fonksiyonlar için kullanabiliriz. lambda ifadelerini özellikle kısa bir fonksiyonu def ifadesiyle yazmanın zahmetli olduğu zamanlarda kullanılabilir.