Python Lambda İşlevlerini Anlamak için Başlangıç ​​Kılavuzu

Python Lambda İşlevlerini Anlamak için Başlangıç ​​Kılavuzu

Python'daki Lambda'lar, bilinmesi gereken en kullanışlı, önemli ve ilginç özelliklerden biridir. Ne yazık ki, yanlış anlamaları ve yanılmaları da kolaydır.





Bu yazıda, bu gizemli işlevler hakkında bilmeniz gereken her şeyi, bunların nasıl kullanılacağını ve neden yararlı olduklarını açıklayacağız.





Bu pratik örneklere dalmadan önce, bir Python sanal ortamı kurmak isteyebilirsiniz. Bunu yapmak bile istemiyorsanız, en azından şu örnekleri denemelisiniz. etkileşimli bir çevrimiçi Python kabuğu ile .





Python'da Lambda nedir?

Lambda, Python'da bir işlevi tanımlamanın basit bir yoludur. Bazen 'lambda operatörleri' veya 'lambda fonksiyonları' olarak bilinirler.

Python'u daha önce kullandıysanız, muhtemelen işlevlerinizi aşağıdakileri kullanarak tanımlamışsınızdır: tanım anahtar kelime ve şimdiye kadar sizin için iyi çalıştı. Öyleyse neden aynı şeyi yapmanın başka bir yolu var?



Aradaki fark, lambda işlevlerinin anonim olmasıdır. Yani, adlandırılması gerekmeyen işlevlerdir. 'Gerçek' bir işlevin çok büyük ve hacimli olacağı durumlarda küçük, tek seferlik işlevler oluşturmak için kullanılırlar.

Lambda'lar, bir değişkene atanabilen bir işlev nesnesi döndürür. Lambdalar herhangi bir sayıda argümana sahip olabilir, ancak yalnızca bir ifadeleri olabilir. Lambdaların içindeki diğer işlevleri çağıramazsınız.





Lambda işlevlerinin en yaygın kullanımı, tam bir normal işlev yazmanın aşırıya kaçacağı basit bir tek satırlık işlev gerektiren koddur. Bu, aşağıda 'Harita, Filtre ve Küçültme Hakkında Ne?' altında daha ayrıntılı olarak ele alınmaktadır.

Python'da Lambdalar Nasıl Kullanılır

Bir lambda işlevine bakmadan önce, 'geleneksel' şekilde tanımlanan süper temel bir işleve bakalım:





def add_five(number):
return number + 5

print(add_five(number=4))

Bu fonksiyon çok basittir, ancak lambdaları göstermeye yarar. Sizinki bundan daha karmaşık olabilir. Bu işlev, kendisine iletilen herhangi bir sayıya beş ekler. sayı parametre.

İşte bir lambda işlevi olarak nasıl göründüğü:

add_five = lambda number: number + 5

print(add_five(number=4))

kullanmak yerine tanım , kelime lambda kullanıldı. Parantez gerekmez, ancak aşağıdaki sözcükler lambda anahtar kelime parametre olarak oluşturulur. İki nokta üst üste parametreleri ve ifadeyi ayırmak için kullanılır. Bu durumda, ifade sayı + 5 .

kullanmana gerek yok dönüş anahtar kelime --- lambda bunu sizin için otomatik olarak yapar.

İki bağımsız değişkenle bir lambda işlevini şu şekilde oluşturacaksınız:

Excel'de bir değişken için nasıl çözülür
add_numbers_and_five = lambda number1, number2: number1 + number2 + 5

print(add_numbers_and_five(number1=4, number2=3))

Lambdaların noktasından hala emin değilseniz, bir sonraki bölüm konuya girecek ve ışığı görmenize yardımcı olacaktır.

Harita, Filtre ve Azaltma ile Python Lambdas

Python çekirdek kütüphanesinin adı verilen üç yöntemi vardır. harita , azaltmak , ve filtre . Bu yöntemler muhtemelen lambda işlevlerini kullanmak için en iyi nedenlerdir.

NS harita işlev iki bağımsız değişken bekler: bir işlev ve bir liste. Bu işlevi alır ve listedeki her öğeye uygulayarak değiştirilmiş öğelerin listesini bir harita nesnesi olarak döndürür. NS liste işlevi, elde edilen harita nesnesini tekrar bir listeye dönüştürmek için kullanılır.

Haritayı lambda olmadan nasıl kullanacağınız aşağıda açıklanmıştır:

list1 = [2, 4, 6, 8]
print(list1)
def add_five(number):
return number + 5

new_list = list(map(add_five, list1))
print(new_list)

Bu harita işlevi oldukça kullanışlıdır, ancak daha iyi olabilirdi. NS add_beş işlev bir argüman olarak iletilir, ancak haritayı her kullandığınızda bir işlev oluşturmak istemiyorsanız ne olur? Bunun yerine bir lambda kullanabilirsiniz!

Aynı kod, yalnızca işlev bir lambda ile değiştirildiğinde şöyle görünür:

bir modeme ve yönlendiriciye ihtiyacınız var mı
list1 = [2, 4, 6, 8]
print(list1)

new_list = list(map(lambda x: x + 5, list1))
print(new_list)

Gördüğünüz gibi, bütün add_beş işlevi artık gerekli değildir. Bunun yerine, işleri düzenli tutmak için lambda işlevi kullanılır.

İle filtre işlev, süreç hemen hemen aynıdır. Filtre bir işlev alır ve onu listedeki her öğeye uygular ve yalnızca işlevin True döndürmesine neden olan öğelerle yeni bir liste oluşturur.

İlk olarak, lambdalar olmadan:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
def greater_than_ten_func(number):
if number > 10:
return True
else:
return False
new_numbers = list(filter(greater_than_ten_func, numbers))

print(new_numbers)

Bu kodda yanlış bir şey yok ama biraz uzun oluyor. Bir lambdanın kaç satır kaldırabileceğini görelim:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
new_numbers = list(filter(lambda x: x > 10, numbers))
print(new_numbers)

Lambda işlevi, bütüne olan ihtiyacın yerini aldı. büyük_than_ten_func ! Ve bunu beş basit kelimeyle yaptı. Lambdaların güçlü olmasının nedeni budur: basit görevler için dağınıklığı azaltırlar.

Son olarak, bakalım azaltmak . Azalt, başka bir harika Python işlevidir. Listedeki tüm öğelere yuvarlanan bir hesaplama uygular. Bunu bir toplamı hesaplamak veya tüm sayıları birlikte çarpmak için kullanabilirsiniz:

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)
def summer(a, b):
return a + b

result = reduce(summer, numbers)
print(result)

Bu örneğin içe aktarılması gerekiyor azaltmak itibaren işlev araçları modül, ancak endişelenmeyin, functools modülü Python çekirdek kitaplığının bir parçasıdır.

Hikaye bir lambda ile hemen hemen aynı, bir fonksiyona gerek yok:

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)

result = reduce(lambda a, b: a + b, numbers)
print(result)

Python Lambdalarda Dikkat Edilmesi Gerekenler

Bu örnekler, Python çekirdek kitaplığından harita, filtre ve azaltma ile birlikte lambda işlevlerinin ne kadar kolay olduğunu göstermiştir. Yine de lambda işlevlerinin yardımcı olmadığı birkaç kullanım vardır.

Temel bir görevden daha fazlasını yapıyorsanız veya diğer yöntemleri çağırmak istiyorsanız normal bir işlev kullanın. Lambda'lar tek seferlik, anonim işlevler için harikadır, ancak yalnızca tek bir ifadeye sahip olmaları gerekir. Lambda'nız normal bir ifade gibi görünmeye başlarsa, muhtemelen özel bir yönteme yeniden bakmanın zamanı gelmiştir.

Daha fazla ipucu için, Python'da nesne yönelimli programlama rehberi ve Python'a yeni başlayanlar için SSS kılavuzumuza göz atın.

Paylaş Paylaş Cıvıldamak E-posta Bir E-postanın Gerçek mi Sahte mi Olduğunu Kontrol Etmenin 3 Yolu

Biraz şüpheli görünen bir e-posta aldıysanız, orijinalliğini kontrol etmek her zaman en iyisidir. İşte bir e-postanın gerçek olup olmadığını anlamanın üç yolu.

Sonrakini Oku
İlgili konular
  • Programlama
  • piton
  • Kodlama Eğitimleri
Yazar hakkında Joe Coburn(136 Makale Yayınlandı)

Joe, İngiltere'deki Lincoln Üniversitesi'nden Bilgisayar Bilimleri mezunudur. Profesyonel bir yazılım geliştiricisi ve drone uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video çekerken bulunabilir.

Joe Coburn'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın