Lambda İfadeleri
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.
1 2 3 4 5 6 7 8 9 10 11 12 |
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) """ Çıktı [2, 4, 6, 8, 10] """ |
1 2 3 4 5 6 7 8 9 10 |
liste3 = [1,2,3,4,5] liste4 = [i * 2 for i in liste3] # List Comprehension print(liste4) """ Çıktı [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.
1 |
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.
1 2 3 4 5 6 7 8 9 10 |
def ikiyleçarp(x): # Klasik fonksiyon tanımlama return x * 2 print(ikiyleçarp(2)) """ Çıktı 4 """ |
1 2 3 4 5 6 7 8 9 10 11 12 |
# Ş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. """ Çıktı 6 """ |
1 2 3 4 5 6 7 8 9 10 11 |
def toplama(a,b,c): return a + b + c print(toplama(3,4,5)) """ Çıktı 12 """ |
1 2 3 4 5 6 7 8 9 |
topla = lambda x,y,z : x + y + z print(topla(3,4,5)) """ Çıktı 12 """ |
1 2 3 4 5 6 7 8 9 10 11 12 |
# Stringi ters çevirme def terscevir(s): return s[::-1] print(terscevir("Python Programlama")) """ Çıktı amalmargorP nohtyP """ |
1 2 3 4 5 6 7 8 9 10 |
ters = lambda s : s[::-1] print(ters("Python Programlama")) """ Çıktı amalmargorP nohtyP """ |
1 2 3 4 5 6 7 8 9 10 11 12 |
çifttek = lambda sayı : sayı % 2 == 0 çifttek(34) çifttek(13) """ Çıktı True 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.