Merhabalar, bu yazımda pythonda oldukça kullanılan lambda fonksiyonlarından ve amaçlarından bahsedeceğim..
Şimdi diyelimki elimizde bir liste mevcut ve biz bunun üstünde işlemler yapmak istiyoruz. Belirli filtrelerden geçirmek, her elemana ayrı ayrı işlem uygulamak, sonra bunları ayrı bir listede toplamak..
Lambda kullanmadan bunu nasıl yapacağımızı görelim :
Şimdi bunu birde lambda fonksiyonlarıyla yazalım :
ilk bakışta biraz karışık gözüksede aslında çok kolay bir işlem. Parça parça açıklayayım en iyisi.
Şimdi öncelikli amacımız listedeki sayılardan tek olanları bulmak. Bu işlemi şu kod parçacığı yapıyor :
Filter fonksiyonu iki parametre alıyor, birincisi lambda fonksiyonu, ikincisi iterable bir nesne. Sağdaki parametreye soldaki işlemi uyguluyor ve geriye bir liste döndürüyor.
Tek olan sayıları bulduktan sonra, bu sayıları 2 ile çarpacağız. Bu işlemi de şurada yapıyoruz :
Bu metod aynı filter metodu gibi iki parametre alıyor, ilki lambda fonksiyonu ikincisi iterable bir nesne.
Bakın metodun ikinci parametresi aslında filter metodundan dönen liste.
Hepsini birleştirdiğimizde 5 satırda yaptığımız işlemi tek satırda yapıyoruz. Fakat tek amacı satır sayısını azaltmak değil. Map-Reduce işlemlerinde sıkça kullanılır.
Lambda fonksiyonlarını yazmaya alıştırırsanız oldukça kolaylıklar elde edersiniz.
Herkese iyi forumlar, ihan3t..
Şimdi diyelimki elimizde bir liste mevcut ve biz bunun üstünde işlemler yapmak istiyoruz. Belirli filtrelerden geçirmek, her elemana ayrı ayrı işlem uygulamak, sonra bunları ayrı bir listede toplamak..
Lambda kullanmadan bunu nasıl yapacağımızı görelim :
Kod:
liste = [1,2,3,4,5,6]
yeniListe = []
for sayi in liste:
if sayi%2 != 0
sayi = sayi * 2
yeniListe.append(sayi)
print yeniListe
Şimdi bunu birde lambda fonksiyonlarıyla yazalım :
Kod:
liste = [1,2,3,4,5,6]
print map(lambda sayi: sayi*2 ,filter(lambda sayi: sayi % 2 != 0, list(x for x in liste)))
ilk bakışta biraz karışık gözüksede aslında çok kolay bir işlem. Parça parça açıklayayım en iyisi.
Şimdi öncelikli amacımız listedeki sayılardan tek olanları bulmak. Bu işlemi şu kod parçacığı yapıyor :
Kod:
filter(lambda sayi: sayi % 2 != 0, list(x for x in liste))
Filter fonksiyonu iki parametre alıyor, birincisi lambda fonksiyonu, ikincisi iterable bir nesne. Sağdaki parametreye soldaki işlemi uyguluyor ve geriye bir liste döndürüyor.
Tek olan sayıları bulduktan sonra, bu sayıları 2 ile çarpacağız. Bu işlemi de şurada yapıyoruz :
Kod:
map(lambda sayi: sayi*2 ,filter(lambda sayi: sayi % 2 != 0, list(x for x in liste)))
Bu metod aynı filter metodu gibi iki parametre alıyor, ilki lambda fonksiyonu ikincisi iterable bir nesne.
Bakın metodun ikinci parametresi aslında filter metodundan dönen liste.
Hepsini birleştirdiğimizde 5 satırda yaptığımız işlemi tek satırda yapıyoruz. Fakat tek amacı satır sayısını azaltmak değil. Map-Reduce işlemlerinde sıkça kullanılır.
Lambda fonksiyonlarını yazmaya alıştırırsanız oldukça kolaylıklar elde edersiniz.
Herkese iyi forumlar, ihan3t..



