Bazen küçücük bir iş için koca bir fonksiyon tanımlamak fazla gelir. Python bunun için zarif bir yol sunar: isimsiz mini fonksiyonlar (lambda) ve onları veriye uygulayan map ile filter. Bunlar, fonksiyonel programlamanın kapısını aralar.
Lambda: isimsiz fonksiyon
Lambda, tek satırlık, isim vermeden tanımlanan küçük bir fonksiyondur:
kare = lambda x: x ** 2
print(kare(5)) # 25map: her öğeye uygula
map, bir fonksiyonu bir listedeki her öğeye uygular. Bir döngü yazmadan tüm listeyi dönüştürürsünüz:
sayilar = [1, 2, 3]
katlar = list(map(lambda x: x * 2, sayilar))
print(katlar) # [2, 4, 6]filter: koşula uyanları seç
filter ise yalnızca bir koşulu sağlayan öğeleri süzer:
sayilar = [1, 2, 3, 4]
buyukler = list(filter(lambda x: x > 2, sayilar))
print(buyukler) # [3, 4]Ne zaman kullanmalı?
Bu araçlar kısa ve zariftir ama abartılırsa okunması zorlaşır. Basit dönüşümler için idealdir; karmaşık mantık için normal fonksiyonlar daha anlaşılırdır. Kavram için isimsiz fonksiyonlar sayfasına bakabilirsiniz.
İşin hocası ne yapar?
İşin hocası lambda’yı bir kısayol olarak sever ama okunabilirlikten ödün vermez; kod başkasının da anlayacağı kadar sade kalmalıdır.
İlgili yazı: Komut Satırı (Terminal) Temelleri
Sıkça Sorulan Sorular
Python’da lambda nedir?
Lambda, isim vermeden tanımlanan tek satırlık küçük bir fonksiyondur. Kısa ve tek seferlik işlemler için kullanılır.
map ve filter ne işe yarar?
map, bir fonksiyonu bir listedeki her öğeye uygulayarak listeyi dönüştürür. filter ise yalnızca belirli bir koşulu sağlayan öğeleri süzer.
Lambda mı normal fonksiyon mu kullanmalıyım?
Basit, kısa ve tek seferlik dönüşümler için lambda idealdir. Mantık karmaşıklaştığında ise okunabilirlik için isimli normal bir fonksiyon tercih edilmelidir.
