Resim

Python Lambda Fonksiyon

Python Lambda Fonksiyonları: Anonim ve Tek Satırlık İşlevler

Fonksiyonları Kısaltmak

Merhaba! Geleneksel def anahtar kelimesiyle tanımladığımız fonksiyonlar, birden fazla satır kod içerebilen, karmaşık görevler için harikadır. Ancak bazen sadece küçük ve hızlı bir işlem yapmak isteriz (örneğin bir listeyi belirli bir kurala göre sıralamak veya basit bir matematiksel işlem yapmak).

İşte bu noktada Lambda Fonksiyonları devreye girer.

Lambda Fonksiyonları:

  1. Anonimdir: Bir isimle tanımlanmazlar (genellikle bir değişkene atanırlar veya doğrudan kullanılırlar).

  2. Tek satırlıktır: Yalnızca tek bir ifade içerebilirler ve bu ifadenin sonucu otomatik olarak döndürülür (açıkça return kullanmaya gerek yoktur).

  3. Genellikle map(), filter() ve sorted() gibi yüksek dereceli fonksiyonlarla birlikte kullanılırlar.


1. Lambda Fonksiyonlarının Temel Söz Dizimi

Lambda fonksiyonları, lambda anahtar kelimesiyle başlar.

Söz Dizimi

lambda argümanlar: ifade
  • lambda: Fonksiyon tanımlama anahtar kelimesi.

  • argümanlar: Fonksiyonun alacağı parametreler (virgülle ayrılmış).

  • : (İki nokta üst üste): Argümanları ifadeden ayırır.

  • ifade: Hesaplamayı yapan tek satırlık kod bloğu. Bu ifadenin sonucu otomatik olarak döndürülür.

  • Örnek: İki Sayıyı Toplayan Lambda

    # Geleneksel fonksiyon
    def topla(x, y):
        return x + y
    
    # Eşdeğer Lambda fonksiyonu
    lambda_topla = lambda x, y: x + y
    
    print(lambda_topla(5, 3)) # Çıktı: 8
    

Kendiniz Deneyebilirsiniz:


2. Lambda Fonksiyonlarının Kullanım Alanları

Lambda fonksiyonlarının gücü, onları başka fonksiyonlara argüman olarak verdiğimizde ortaya çıkar.

a. sorted() Fonksiyonu ile Kullanım

Lambda, bir listedeki öğeleri, varsayılan değerleri dışında (örneğin bir tuple'ın ikinci elemanına göre) sıralamak için anahtar (key) olarak kullanılabilir.

ogrenciler = [
    ("Ali", 85), 
    ("Veli", 92), 
    ("Deniz", 78)
]
# Listeyi puanlarına (ikinci elemana - index 1) göre sırala
puan_siralamasi = sorted(ogrenciler, key=lambda ogr: ogr[1])

print(puan_siralamasi)
# Çıktı: [('Deniz', 78), ('Ali', 85), ('Veli', 92)]

Kendiniz Deneyebilirsiniz:


b. filter() Fonksiyonu ile Kullanım

filter() fonksiyonu, bir koleksiyonun öğelerini bir koşula göre filtreler. Lambda, bu koşulu tek satırda tanımlamak için kullanılır.

sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Sadece çift sayıları filtrele
cift_sayilar = list(filter(lambda x: x % 2 == 0, sayilar))

print(cift_sayilar)
# Çıktı: [2, 4, 6, 8, 10]

Kendiniz Deneyebilirsiniz:


c. map() Fonksiyonu ile Kullanım

map() fonksiyonu, bir koleksiyondaki her öğeye aynı işlemi uygulamak için kullanılır.

fiyatlar = [100, 150, 200]
# Her fiyata %18 KDV ekle
kdvli_fiyatlar = list(map(lambda fiyat: fiyat * 1.18, fiyatlar))
print(kdvli_fiyatlar)
# Çıktı: [118.0, 177.0, 236.0]

Kendiniz Deneyebilirsiniz:

3. Lambda ve def Fonksiyonları Arasındaki Farklar

ÖzellikLambda FonksiyonlarıGeleneksel (def) Fonksiyonlar
İsimAnonim (İsimsiz), isteğe bağlı olarak atanır.Tanımlanırken bir isim (def) gereklidir.
GövdeYalnızca tek bir ifade içerebilir.Birden fazla ifade ve mantık satırı içerebilir.
Döndürmeİfade sonucu otomatik olarak döndürülür (Gizli return).Açıkça return anahtar kelimesi gereklidir.
KullanımBasit işlemler, sıralama anahtarları, map/filter gibi yerlerde tercih edilir.Karmaşık mantık, dokümantasyon (docstring) ve yeniden kullanılabilirlik gerektiğinde kullanılır.

Kısa ve Öz

Lambda fonksiyonları, Python kodunuzu daha kompakt ve fonksiyonel programlama stilini benimseyerek daha okunaklı hale getirmenin mükemmel bir yoludur. Unutmayın, ne zaman çok basit, tek satırlık bir işlev tanımlamanız gerekirse, def yerine lambda kullanmak size zaman kazandıracaktır.

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?