python dersleri

Python Lambda Fonksiyonu

Merhaba Arkadaşlar,
Mobilhanem.com da Python Eğitimi Serisinin bu dersinde sizlerle Lambda Fonksiyonu ile birlikteyiz. Bu dersi biraz daha  sohbet tarzında anlatmak istiyorum. Onun için yazımıza başlamadan önce eminim kafanızda neden lambda fonksiyonu kullanmalıyım, lambda fonksiyonları kullanmak bana ne kazandıracak, lambda fonksiyonlarını kullanmak zorunda mıyız gibi sorular vardır. Öncelikle bu soruları cevaplayıp öyle derse başlayalım. Ne duruyoruz hadi  başlayalım.

Neden Lambda Fonksiyonu?

Bir önceki derslerimizde Fonksiyonları ele aldık bir cümle ile fonksiyonları anlatırsak fonksiyonlar kod tekrarını önlemek daha düzenli kod yazmak ve en önemlisi de kod karmaşıklığından kurtulmak için kullanıyorduk. Eğer Fonksiyonlar dersine bakmadıysanız linke tıklayıp bu dersi daha iyi anlamak adına önce  o derse bakmalısınız.

Lambda fonksiyonu da ileri düzey bir fonksiyondur recürsive fonksiyonlar gibi. Peki lambda fonksiyonları bize ne kazandıracak diye soracak olursanız. Bunun birçok cevabı var; daha az kod daha düzenli kod yazmak ve bunun gibi birçok avantajı var. Evet lambda fonksiyonları ile normal fonksiyonlarına göre çok daha az kod yazıyorsunuz sebebi ise lambda fonksiyonları tek satırlık fonksiyonlarıdır. Sadece bir satır ile fonksiyon yazmayı öğreneceksiniz bu derste.

Peki Lambda fonksiyonlarını kullanmak zorunda mısınız tabi ki hayır ama Lambda fonksiyonları ile daha az kod yazacaksınız ve kodlarınız daha düzenli olacak. Bu sebeple Lamda fonksiyonları ile siz daha hızlı ve pratik olacaksınız.

Ama lambda fonksiyonları çok karmaşık fonksiyonları yazmak için kullanamazsınız sadece küçük fonksiyonlarda pratik yapmak için kullanabilirsiniz.

Eğer Lamda Fonksiyonlarını öğrenmeye istekliyseniz kafanızda bir soru takılmıştır.

Lambda Foksiyonu Nasıl Kullanılır?

Lambda fonksiyonları anlatmadan önce normal bir fonksiyon oluşturalım önce sonra aynı fonksiyonu lambda fonksiyonu ile oluşturalım o zaman aradaki farkı çok daha iyi anlayacaksınız.

Sayıların karesini hesaplayan bir fonksiyon yazalım;

def kareAl(sayi):
    return sayi**2

print(kareAl(5))

Şimdi aynı fonksiyonu lambda fonksiyonu yazalım bunun öncesinde genel bir lamda kullanım taslağını görelim.

FonksiyonAdi = lambda paremetre1,paremetre2: dönüş değeri

Hemen girilen sayının karesini alan lambda fonksiyonunu yazalım.

kareAl = lambda x:x**2

print(kareAl(5))

Gördüğünüz gibi çok basit kullanımı var.

Lambda fonksiyonları List Comprehension’lara çok benziyor hemen bir örnekle gösterelim.

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

Şimdi list1 adlı listenin tüm elemanlarının karesini list2 adlı listeyi list comprehension ile oluşturalım.

list2 = [i**2 for i in list1]
print(list2)

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Görüldüğü gibi çok benzer kullanımları var.

Belki şimdi size çok anlamsız veya gereksiz gelebilir ama bir sonraki dersimiz ele alacağımız gömülü fonksiyonlar da lambda fonksiyonu ile fonksiyon kullanımının çok daha rahat olduğunu göreceksiniz. Ayrıca daha ileri ki seviyelerde Python’nun Pandas vb. kütüphaneleri ile uğraştığınız zaman bu tür yapıyla sıkça karşılaşacaksınız.

Başka bir örnek daha verelim bu seferki örneğimiz vize ve final sınavlarının ortalamasını hesaplayan bir fonksiyon olsun.

hesapla = lambda vize,final: vize*0.4+final*0.6

print(hesapla(40,60))

Görüldüğü gibi çok basit bir şekilde fonksiyonumuzu yazmış olduk.

Lamda fonksiyonu gibi normal fonksiyonları da tek bir satır ile yazabilirsiniz fakat bu yöntem çok kullanılmamaktadır. Dilerseniz Python yazım stil standartları olan PEP8 buradan bakabilirsiniz. Biz yine de bir örnekle gösterelim.

def hesapala(x): return x**2
print(hesapala(5))

Bu yöntemi de kullanabilirsiniz ama dediğim gibi bu yöntem okunabilirlik yönünden pek kullanılan bir yöntem değildir.

Daha öncede belirttiğim gibi çok karmaşık fonksiyonlarda kullanamazsınız sadece küçük fonksiyonlarda daha az kod ve pratik yapmak için kullanabilirsiniz.

Mobilhanem.com da Lambda Fonksiyonları dersinin  sonuna geldik bir sonraki yazımızda Python da Gömülü Fonksiyonları ele alacağız. Eksik yada yanlış gördüğünüz yada anlamadığınız yerler için çekinmeden ulaşabilirsiniz.

Bütün Python derslerine buradan ulaşabilirsiniz.

 

 

112

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?