AMP Analytics -->

Teknoloji Rehberi

4 Mayıs 2025 Pazar

Python'da Lambda Fonksiyonları

 

Python'da Lambda Fonksiyonları: Ayrıntılı Rehber

Lambda fonksiyonları, Python'da küçük, isimsiz (anonim) fonksiyonlar oluşturmak için kullanılan özel bir yapıdır. lambda anahtar kelimesiyle tanımlanırlar ve normal fonksiyonlardan farklı olarak bir isme sahip değillerdir.

Temel Yapı

python
Copy
Download
lambda arguments: expression
  • lambda: Lambda fonksiyonu tanımlamak için kullanılan anahtar kelime

  • arguments: Fonksiyonun aldığı parametreler (virgülle ayrılmış)

  • expression: Çalıştırılacak ifade (dönüş değeri olur)

Örneklerle Lambda Fonksiyonları

1. Temel Kullanım

python
Copy
Download
# Normal fonksiyon
def kare(x):
    return x ** 2

# Lambda fonksiyonu
kare_lambda = lambda x: x ** 2

print(kare(5))          # 25
print(kare_lambda(5))   # 25

2. Çoklu Parametre

python
Copy
Download
topla = lambda a, b: a + b
print(topla(3, 7))  # 10

3. Varsayılan Parametre

python
Copy
Download
carp = lambda x, y=2: x * y
print(carp(5))     # 10 (y=2 varsayılan)
print(carp(5, 3))  # 15

Lambda Fonksiyonlarının Yaygın Kullanım Alanları

1. sorted() ile Kullanım

python
Copy
Download
ogrenciler = [("Ahmet", 25), ("Zeynep", 19), ("Mehmet", 22)]

# Yaşa göre sıralama
print(sorted(ogrenciler, key=lambda x: x[1]))
# [('Zeynep', 19), ('Mehmet', 22), ('Ahmet', 25)]

2. filter() ile Kullanım

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

# Çift sayıları filtrele
ciftler = list(filter(lambda x: x % 2 == 0, sayilar))
print(ciftler)  # [2, 4, 6, 8, 10]

3. map() ile Kullanım

python
Copy
Download
sayilar = [1, 2, 3, 4, 5]

# Sayıların karesini al
kareler = list(map(lambda x: x ** 2, sayilar))
print(kareler)  # [1, 4, 9, 16, 25]

4. reduce() ile Kullanım

python
Copy
Download
from functools import reduce

sayilar = [1, 2, 3, 4]

# Sayıları çarp
carpim = reduce(lambda x, y: x * y, sayilar)
print(carpim)  # 24 (1*2*3*4)

Lambda Fonksiyonlarının Avantajları

  1. Kısa ve Öz: Basit işlemler için fonksiyon tanımlamaya gerek kalmaz

  2. Okunabilirlik: Küçük işlemlerde kodun daha anlaşılır olmasını sağlar

  3. Anonim: İsim vermeden kullanılabilirler

  4. Fonksiyonel Programlamamapfilterreduce gibi fonksiyonlarla iyi uyum sağlar

Sınırlamalar

  1. Tek İfade: Lambda fonksiyonları yalnızca tek bir ifade içerebilir

  2. Karmaşık Mantık: Çok satırlı veya karmaşık işlemler için uygun değildir

  3. Hata Ayıklama: İsimsiz oldukları için hata mesajlarında tanımlayıcı bilgi vermezler

İleri Düzey Kullanımlar

1. Çoklu Koşullu İfadeler

python
Copy
Download
kategorize = lambda x: "Küçük" if x < 10 else ("Orta" if 10 <= x < 20 else "Büyük")
print(kategorize(5))   # Küçük
print(kategorize(15))  # Orta
print(kategorize(25))  # Büyük

2. İç İçe Lambda Fonksiyonları

python
Copy
Download
carpan_uret = lambda n: lambda x: x * n

ikiyle_carp = carpan_uret(2)
print(ikiyle_carp(11))  # 22

besle_carp = carpan_uret(5)
print(besle_carp(11))  # 55

3. Sözlük Sıralama

python
Copy
Download
urunler = [
    {"ad": "Telefon", "fiyat": 5000},
    {"ad": "Tablet", "fiyat": 3500},
    {"ad": "Bilgisayar", "fiyat": 12000}
]

# Fiyata göre sırala
siralanmis = sorted(urunler, key=lambda x: x["fiyat"])
print(siralanmis)
# [{'ad': 'Tablet', 'fiyat': 3500}, {'ad': 'Telefon', 'fiyat': 5000}, {'ad': 'Bilgisayar', 'fiyat': 12000}]

Lambda vs Normal Fonksiyon

ÖzellikLambda FonksiyonuNormal Fonksiyon (def)
İsimİsimsiz (anonim)İsimli
GövdeTek ifadeÇok satırlı olabilir
Dönüş değeriOtomatikreturn gerekli
KarmaşıklıkBasit işlemler içinKarmaşık işlemler için
Kullanım AlanıFonksiyonel programlamaGenel amaçlı

En İyi Uygulamalar

  1. Basit İşlemler İçin Kullanın: Karmaşık mantıklardan kaçının

  2. Aşırı Kullanmayın: Okunabilirliği bozduğunda normal fonksiyon tercih edin

  3. Anlamlı Şekilde Adlandırın: Lambda bir değişkene atanacaksa açıklayıcı isim verin

  4. Fonksiyonel Programlama Araçlarıyla Kullanınmapfilterreduce gibi fonksiyonlarla iyi uyum sağlar

Lambda fonksiyonları Python'da güçlü bir araçtır, ancak uygun yerlerde kullanıldığında kodunuzu daha okunabilir ve Pythonic hale getirir.

Hiç yorum yok:

Yorum Gönder

Popular Posts