Python Lambda ne için kullanılır?

Lambda ifadelerinden bahsediyoruz: Lambda ifadeleri aslında oldukça faydalı.

Lambda ifadelerinden bahsediyoruz:

lambda x: x**2 + 2*x - 5

Lambda ifadeleri aslında oldukça faydalı. Python, işlevsel programlama adı verilen bir programlama stilini destekler. Bu şekilde fonksiyonları fonksiyonlara parametre olarak verebiliriz. Örnek:

mult3 = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])

Yukarıdaki kod mult3 değişkenini [3, 6, 9] olarak ayarlar. Bu liste orijinal listedeki 3’ün katları olan öğeleri aldı. Bu yöntem aşağıdakine göre daha kısadır (ve daha nettir)

def filterfunc(x):
    return x % 3 == 0
mult3 = filter(filterfunc, [1, 2, 3, 4, 5, 6, 7, 8, 9])

Tabii ki, bu özel durumda, bir liste üreteci kullanarak da aynı şeyi yapabilirsiniz:

mult3 = [x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9] if x % 3 == 0]

(veya range(3,10,3) kullanılabilir).

lambda aslında fonksiyon demenin süslü bir yolu. lambda adı dışında, belirsiz, korkutucu veya şifreli bir yapısı bulunmuyor. Aşağıdaki satırı okuduğunuzda, lambda kelimesini aklınızda function ile değiştirin:

>>> f = lambda x: x + 1
>>> f(3)
4

Böylece sadece bir x işlevi tanımladık. R gibi bazı dillerde bunu aşağıdaki gibi yaparız:

> f = function(x) { x + 1 }
> f(3)
4

Yani programlamada yapılacak en doğal şeylerden biri aslında.


Yukarıdaki örneğe geri dönelim. Lambda’lar liste üreteçleri haricinde de yararlı olacaktır. Bir liste üreteci kullanamadığınız durumlarda lambda işlevleri bir şey yazmanın en kısa yolu olabilir. Aşağıda daha karmaşık kullanım örneklerine bakalım:

Başka bir işlevden işlev döndürme

  >>> def transform(n):
  ...     return lambda x: x + n
  ...
  >>> f = transform(3)
  >>> f(4)
  7

Bu genellikle Python’un dekoratörleri gibi işlev sarmalayıcıları oluşturmak için kullanılır.

Bir yinelemenin öğelerini reduce() ile birleştirme:

  >>> reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])
  '1, 2, 3, 4, 5, 6, 7, 8, 9

Alternatif anahtara göre sıralama

  >>> sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))
  [5, 4, 6, 3, 7, 2, 8, 1, 9]

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python’a Giriş

Python, Guido van Rossum tarafından oluşturulan bir programlama dilidir.

Dekoratörler

Giriş  Dekoratör fonksiyonları yazılım tasarım desenleridir.

Python’da dosya okuma ve yeni satırları kırpma

Python’daki bir dosyayı okumak ve yeni satırları kırpmak istiyoruz.

Python’da bir klasördeki tüm modüller nasıl yüklenir?

Bir dizin altındaki tüm modülleri içeri aktarmanın almanın bir yolu var mı?Şöyle bir klasör yapımız olsun: Bunun için muhtemelen importlib kullanmak isteriz.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.