Lambda fonksiyonları, Python’da tek satırlık, küçük ve anonim (isimsiz) fonksiyonlar oluşturmanızı sağlar. Lambda fonksiyonları genellikle basit işlemler için kullanılır ve daha kapsamlı bir fonksiyon tanımı gerektirmeyen durumlarda tercih edilir. Lambda fonksiyonları, lambda
anahtar kelimesi ile tanımlanır.
1. Lambda Fonksiyonlarının Tanımlanması
Lambda fonksiyonları, standart bir fonksiyon gibi def
anahtar kelimesi yerine lambda
anahtar kelimesi ile tanımlanır. Lambda fonksiyonları, isim almazlar, bu yüzden anonim fonksiyonlar olarak da bilinirler.
a. Lambda Fonksiyonunun Genel Söz Dizimi
lambda parametreler: ifade
Bu yapı, parametreleri alan ve bu parametreler üzerinde belirli bir ifadeyi çalıştıran bir fonksiyon oluşturur.
b. Basit Lambda Fonksiyonu Örneği
topla = lambda a, b: a + b
print(topla(3, 5)) # 8 yazdırır
Bu örnekte, topla
adlı lambda fonksiyonu iki parametre alır (a
ve b
) ve bu parametrelerin toplamını döndürür.
2. Lambda Fonksiyonlarının Kullanım Alanları
Lambda fonksiyonları genellikle kısa ve basit fonksiyonlar gerektiğinde kullanılır. Aşağıda lambda fonksiyonlarının yaygın kullanım alanlarına dair örnekler bulabilirsiniz.
a. map()
Fonksiyonu ile Kullanım
map()
fonksiyonu, bir iterable (örneğin liste) üzerinde bir fonksiyonu uygulamak için kullanılır. Lambda fonksiyonları bu tür durumlar için idealdir.
sayilar = [1, 2, 3, 4, 5]
karesi = list(map(lambda x: x**2, sayilar))
print(karesi) # [1, 4, 9, 16, 25]
Bu örnekte, lambda fonksiyonu her bir sayının karesini alır ve map()
fonksiyonu ile bu işlem tüm liste elemanlarına uygulanır.
b. filter()
Fonksiyonu ile Kullanım
filter()
fonksiyonu, bir iterable üzerindeki elemanları belirli bir koşula göre filtrelemek için kullanılır.
sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
cift_sayilar = list(filter(lambda x: x % 2 == 0, sayilar))
print(cift_sayilar) # [2, 4, 6, 8, 10]
Bu örnekte, lambda fonksiyonu bir sayının çift olup olmadığını kontrol eder ve filter()
fonksiyonu ile bu koşulu sağlayan sayılar filtrelenir.
c. sorted()
Fonksiyonu ile Kullanım
sorted()
fonksiyonu, bir iterable’ı sıralamak için kullanılır. Lambda fonksiyonları, sıralama anahtarını belirlemek için kullanılabilir.
ogrenciler = [("Ali", 25), ("Ayşe", 22), ("Mehmet", 27)]
sirali_ogrenciler = sorted(ogrenciler, key=lambda x: x[1])
print(sirali_ogrenciler) # [("Ayşe", 22), ("Ali", 25), ("Mehmet", 27)]
Bu örnekte, lambda fonksiyonu her öğrencinin yaşına göre sıralama yapar.
d. reduce()
Fonksiyonu ile Kullanım
reduce()
fonksiyonu, bir iterable’ın elemanlarını birleştirerek tek bir değer elde etmek için kullanılır. reduce()
fonksiyonu, functools
modülünden import edilmelidir.
from functools import reduce
sayilar = [1, 2, 3, 4, 5]
toplam = reduce(lambda x, y: x + y, sayilar)
print(toplam) # 15
Bu örnekte, lambda fonksiyonu liste elemanlarını toplar ve reduce()
fonksiyonu bu işlemi tüm elemanlar için tekrarlar.
3. Lambda Fonksiyonları ve Normal Fonksiyonlar
Lambda fonksiyonları, kısa ve basit işlemler için kullanışlıdır. Ancak, daha karmaşık işlemler veya açıklayıcı kod yazılması gerektiğinde normal fonksiyonlar tercih edilmelidir. Lambda fonksiyonları, birden fazla ifadeyi içeremediği ve yalnızca tek bir işlem gerçekleştirebildiği için, daha karmaşık mantıklar için uygun değildir.
a. Normal Fonksiyon ile Lambda Fonksiyonu Karşılaştırması
Normal Fonksiyon:
def topla(a, b):
return a + b
print(topla(3, 5)) # 8 yazdırır
Lambda Fonksiyonu:
topla = lambda a, b: a + b
print(topla(3, 5)) # 8 yazdırır
Her iki fonksiyon da aynı sonucu verir, ancak normal fonksiyonlar daha açıklayıcıdır ve daha karmaşık işlemler için uygundur.
Lambda fonksiyonları, Python’da hızlı ve basit fonksiyon tanımları yapmak için kullanılır. Özellikle map()
, filter()
, sorted()
, ve reduce()
gibi fonksiyonlarla birlikte kullanıldığında oldukça güçlüdür. Ancak, daha karmaşık işlemler ve açıklayıcı kodlar için normal fonksiyonlar tercih edilmelidir. Lambda fonksiyonları, kodunuzu daha kısa ve okunabilir hale getirmek için uygun bir araçtır.
Bir yanıt yazın