İlan

Python'daki Lambdas, bilinmesi gereken en yararlı, önemli ve ilginç özelliklerden biridir. Ne yazık ki, yanlış anlamaları ve yanlış anlamaları da kolaydır.

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

Bu pratik örneklere dalmadan önce, Python sanal ortamı kurma Python Sanal Ortamını Nasıl Kullanacağınızı Öğreninİster deneyimli bir Python geliştiricisi olun, ister yeni başlıyor olun, herhangi bir Python projesi için sanal ortamın nasıl kurulacağını öğrenmek önemlidir. Daha fazla oku . Bunu yapmak bile istemiyorsanız, en azından bu örnekleri denemelisiniz etkileşimli bir çevrimiçi Python kabuğu ile Bu Ücretsiz Çevrimiçi İnteraktif Kabuklarla Tarayıcınızda Python'u DeneyinBu Python örneklerini inceliyor veya dizilerin ve listelerin temellerini gözden geçiriyor olun, kodu doğrudan tarayıcınızda test edebilirsiniz. İşte bulduğumuz en iyi çevrimiçi Python tercümanları. Daha fazla oku .

Python'da Lambda nedir?

instagram viewer

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

Daha önce Python'u kullandıysanız, muhtemelen işlevlerinizi def anahtar kelimeniz var ve şimdiye kadar sizin için iyi çalıştı. Öyleyse neden aynı şeyi yapmanın başka bir yolu var?

Aradaki fark lambda fonksiyonlarının isimsiz olmasıdır. Yani, adlandırılması gerekmeyen işlevlerdir. “Gerçek” bir fonksiyonun çok büyük ve hantal olduğu durumlarda küçük, bir kerelik fonksiyonlar oluşturmak için kullanılırlar.

Lambdas, bir değişkene atanabilen bir fonksiyon nesnesi döndürür. Lambdaların herhangi bir sayıda argümanı olabilir, ancak sadece bir ifadeleri olabilir. Lambdaların içindeki diğer işlevleri çağıramazsınız.

Lambda işlevleri için en yaygın kullanım, basit bir tek satır işlevi gerektiren koddadır ve burada tam bir normal işlev yazmanın gereğinden fazla olması gerekir. Bu, aşağıda “Harita, Filtre ve Küçültme Hakkında Ne Var?” Başlığı altında daha ayrıntılı olarak ele alınmaktadır.

Python'da Lambdas 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 (sayı): dönüş numarası + 5 baskı (add_five (sayı = 4))
python'da lamba fonksiyonlarının kullanımı

Bu işlev çok basittir, ancak lambdaları göstermeye yarar. Sizinki bundan daha karmaşık olabilir. Bu işlev, üzerinden geçen herhangi bir sayıya beş ekler numara parametre.

Lambda işlevi olarak şöyle görünür:

add_five = lambda numarası: sayı + 5 baskı (add_five (sayı = 4))
python'da lamba fonksiyonlarının kullanımı

Kullanmak yerine def, kelime lambda kullanıldı. Köşeli parantez gerekmez, ancak 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.

Kullanmanıza gerek yok dönüş Anahtar kelime: lambda bunu sizin için otomatik olarak yapar.

İki argümanla bir lambda işlevi nasıl oluşturacağınız aşağıda açıklanmıştır:

add_numbers_and_five = lambda sayı1, sayı2: sayı1 + sayı2 + 5 baskı (add_numbers_and_five (sayı1 = 4, sayı2 = 3))
python'da lamba fonksiyonlarının kullanımı

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

Harita, Filtre ve Küçültme ile Python Lambdas

Python çekirdek kütüphanesinin üç yöntemi vardır: map, azaltmak, ve filtre. Bu yöntemler muhtemelen lambda fonksiyonlarını kullanmanın en iyi nedenleridir.

map işlevi iki bağımsız değişken bekler: bir işlev ve bir liste. Bu işlevi alır ve değiştirilen öğelerin listesini bir harita nesnesi olarak döndürerek listedeki her öğeye uygular. liste işlevi, ortaya çıkan harita nesnesini tekrar 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 (sayı): dönüş numarası + 5 new_list = list (harita (add_five, list1)) yazdır (new_list)
python'da lamba fonksiyonlarının kullanımı

Bu harita işlevi oldukça kullanışlıdır, ancak daha iyi olabilir. add_five işlevi bağımsız değişken olarak aktarılır, ancak haritayı her kullandığınızda bir işlev oluşturmak istemezseniz ne olur? Bunun yerine lambda kullanabilirsiniz!

Aynı kod sadece lambda ile değiştirilen işlevle şöyle görünür:

list1 = [2, 4, 6, 8] print (list1) new_list = list (harita (lambda x: x + 5, list1)) yazdır (new_list)
python'da lamba fonksiyonlarının kullanımı

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

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

İlk olarak, lambdas olmadan:

sayılar = [1, 4, 5, 10, 20, 30] print (numbers) def bigger_than_ten_func (sayı): eğer sayı> 10: return True else: return False new_numbers = list (filtre (daha büyük_than_ten_func, sayılar)) print (new_numbers)
python'da lamba fonksiyonlarının kullanımı

Bu kodda yanlış bir şey yok, ancak biraz uzun sürüyor. Bir lambda'nın kaç çizgiyi kaldırabileceğini görelim:

sayılar = [1, 4, 5, 10, 20, 30] print (sayı) new_numbers = list (filtre (lambda x: x> 10, sayı)) yazdır (yeni_sayılar)
python'da lamba fonksiyonlarının kullanımı

Lambda işlevi, tüm ihtiyacın yerini aldı greater_than_ten_func! Ve bunu beş basit kelimeyle yaptık. Bu yüzden lambdalar güçlüdür: basit görevler için dağınıklığı azaltırlar.

Son olarak, bakalım azaltmak. Küçült başka bir harika Python işlevidir. Listedeki tüm öğelere yuvarlama hesaplaması uygular. Toplamı toplamak veya tüm sayıları çarpmak için bunu kullanabilirsiniz:

functools ithalatından sayıları azaltın = [10, 20, 30, 40] print (sayı) def summer (a, b): a + b sonucu döndür = azalt (yaz, sayılar) yazdır (sonuç)
python'da lamba fonksiyonlarının kullanımı

Bu örneğin içe aktarılması gerekiyor azaltmak -dan functools ancak merak etmeyin, functools modülü Python çekirdek kütüphanesinin bir parçasıdır.

Hikaye bir lambda ile aynıdır, bir işleve gerek yoktur:

functools ithalatından sayıları azaltın = [10, 20, 30, 40] print (numbers) sonucu = azalt (lambda a, b: a + b, sayılar) yazdır (sonuç)
python'da lamba fonksiyonlarının kullanımı

Python Lambdas ile dikkat edilmesi gerekenler

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

Temel bir görevden başka bir şey yapıyorsanız veya diğer yöntemleri çağırmak istiyorsanız normal bir işlev kullanın. Lambdalar tek seferlik, anonim işlevler için harikadır, ancak sadece tek bir ifadeye sahip olmalıdırlar. Lambda'nız düzenli 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 kılavuzu Python Nesneye Yönelik Programlamaya Yeni Başlayanlar KılavuzuPython'un güçlü yanlarından tam olarak yararlanmak için Python'un nesne yönelimli programlama (OOP) ile nasıl çalıştığını öğrenmek isteyeceksiniz. Daha fazla oku ve göz atın Python yeni başlayanlar için SSS kılavuzu Python Programlama Hakkında En Sık Sorulan SorularBu yazıda, yeni başlayanlar olarak Python hakkında bilmeniz gereken her şeyde size yol göstereceğiz. Daha fazla oku .

Joe, İngiltere Lincoln Üniversitesi Bilgisayar Bilimi mezunudur. Profesyonel bir yazılım geliştiricisidir ve uçağı uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video üretirken bulunabilir.