Python ile Lambda İfadeleri

Bu yazıda Python ile lambda ifadelerini (expression) öğrenmeye çalışacağız. lambda ifadeleri fonksiyonlarımızı oluşturmak için bulunan pratik bir yöntemdir. Gerektiği yerde bu ifadeleri kullanabiliriz. Biliyorsunuz listelerimizi oluşturmak için List Comprehension yöntemini kullanıyorduk. İsterseniz önce list comprehension yöntemini hatırlayalım.

Küçük fonksiyonlar için bu ifadeyi kullanmak akıllıca olabilir.


liste1=[1,2,3,4,5]
liste2=list()
for i in liste1: # klasik liste oluşturma yöntemi
    liste2.append(i*2)
print(liste2)

"""
Çıktı:

[2, 4, 6, 8, 10]
"""

liste3=[1,2,3,4,5]
liste4=[i*2 for i in liste3] # List Comprehension
print(liste4)

"""
Çıktı:

[2, 4, 6, 8, 10]
"""

Aynı buradaki gibi bir fonksiyon da tek satır halinde lambda ifadeleri ile oluşturabiliriz. İlk önce yapısına bakalım sonra örneklerimize geçelim.

etiket = lambda parametre1, parametre2,….. : işlem

Bu yapıdan henüz bir şey anlamamış olabiliriz. İsterseniz örneklerimizle lambda ifadelerini anlamaya çalışalım. Bir tane 2 ile çarpma görevini yerine getiren fonksiyon yazalım.


# Önce klasik fonksiyon tanımlayalım.
def ikiyleCarp(x):
    return x*2

print(ikiyleCarp(3))

"""
Çıktı:

6
"""

Yukarıdaki fonksiyonun aynısını lambda ile tek satırda tanımlayalım


ikiyleCarp = lambda x : x * 2 # Yukarıdaki fonksiyonun aynısını lambda ile tek satırda tanımlamış olduk.

print(ikiyleCarp(3))

"""
Çıktı:

6
"""

 

Başka bir örnek


def toplama(x,y,z):
    return x + y +z
print(toplama(10,11,12))

"""
Çıktı:

33
"""


# Yukardaki fonksiyonu tek satırda lambda ile tanımlayalım:
toplama=lambda x,y,z : x + y + z

print(toplama(3, 4, 5))

"""
Çıktı:

12
"""

Yazmış olduğumuz string ifadeyi ters çeviren fonksiyon tanımlayalım.


def tersCevir(s):
    return s[::-1]

print(tersCevir("Serdar Kurt"))

"""
Çıktı:

truK radreS
"""

# Yukardaki fonksiyonu tek satırda lambda ile tanımlayalım:
tersCevir=lambda s : s[::-1]

print(tersCevir("Serdar Kurt"))


"""
Çıktı:

truK radreS
"""

Son bir örnek olarak çift mi tek mi fonksiyonu yazalım.


def  ciftTek(sayi):
    return sayi%2==0

print(ciftTek(14))
print(ciftTek(13))

"""
Çıktı:

True
False
"""

# Lambda ile yazalım.
ciftTek = lambda sayi : sayi%2==0

print(ciftTek(14))
print(ciftTek(13))

"""
Çıktı:

True
False
"""

Kaynak


Abone ol
Bildir
guest
0 Yorum
Satır İçi Geri Bildirimler
Tüm yorumları görüntüle