Lambda Fonksiyonu ile Özel Hesaplamalar Oluşturma

Lambda, Python'da anonim (isimsiz) fonksiyon yazmak için kullanılan kısa bir yoldur. Basit hesaplamalar için def yazıp durmak yerine, lambda ile tek satırda işi bitirirsin.

Özel hesaplamalar için lambda en çok map(), filter() ve sorted() ile birlikte kullanılır. Mesela bir fiyat listesini yüzde 20 indirimli hale getirmek istersen, lambda bu işi hızlı şekilde halleder.

Basit bir örnek: bir sayı listesinden çift sayıları bul ve ikiye böl.

1sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2
3# Çift sayıları filtrele
4cift_sayilar = list(filter(lambda x: x % 2 == 0, sayilar))
5print(cift_sayilar)
6# Çıktı: [2, 4, 6, 8, 10]
7
8# Çift sayıları ikiye böl
9bolunen = list(map(lambda x: x / 2, cift_sayilar))
10print(bolunen)
11# Çıktı: [1.0, 2.0, 3.0, 4.0, 5.0]

Ürün fiyatlarına indirim uygulamak istersen:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1urünler = [
2{'ad': 'Laptop', 'fiyat': 5000},
3{'ad': 'Fare', 'fiyat': 100},
4{'ad': 'Klavye', 'fiyat': 300}
5]
6
7# Yüzde 20 indirim uygula
8indirimli = list(map(lambda u: {'ad': u['ad'], 'fiyat': u['fiyat'] * 0.8}, urünler))
9
10for u in indirimli:
11print(f"{u['ad']}: {u['fiyat']} TL")
12# Çıktı:
13# Laptop: 4000.0 TL
14# Fare: 80.0 TL
15# Klavye: 240.0 TL

Sıralama işleminde de lambda kullanabilirsin. Listede en uzun ismi bulmak için:

1isimler = ['Ali', 'Fatih', 'Zeynep', 'Can', 'Merve']
2
3# İsimleri uzunluğuna göre sırala
4sirali = sorted(isimler, key=lambda x: len(x), reverse=True)
5print(sirali)
6# Çıktı: ['Fatih', 'Zeynep', 'Merve', 'Ali', 'Can']

Lambda çok pratik olsa da, bir koşul yazarken okunabilirliği kaybetmemeye dikkat et. Eğer hesaplama iki satırdan fazla olacaksa, def ile normal fonksiyon yaz. Lambda tek işlem için tasarlanmıştır. Ayrıca lambda içinde return yazmaya gerek yok; sonuç otomatik döner.

Çoğu başlangıç hatası lambda'nın içini çok karmaşık hale getirmektir. Basit tut, okunabilir kal.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz

1 yorum

  • kodkafasi

    Lambdayı map ve filter ile kullanmak güzel ama sorted kısmında biraz takıldım Parametresi nasıl çalışıyor tam olarak key argümanı ne yapıyor