Örneklerle Python Lambda İşlevleri

Yayınlanan: 2022-06-04

İçindekiler

Python — Bir Giriş

Python, son derece popüler olan genel amaçlı bir programlama dilidir. Önemli girinti kullanımıyla kod okunabilirliğini vurgulayan, yorumlanmış üst düzey bir dildir. Python, programcılar tarafından herhangi bir ölçekteki projeler için temiz, mantıklı kodlar yazmak için kullanılır.

Python, 1980'lerde Guido Van Rossum tarafından ABC programlama dilinin halefi olarak tasarlandı. O zamandan beri Python, çok yönlülüğü nedeniyle popüler bir programlama dili olarak kaldı.

Fonksiyonlar - Bir giriş

Fonksiyonlar, çağrıldıklarında çalışan kod bloklarıdır ve bir programda n kez çağrılabilir. Yapılandırılmış kod ifadeleridir ve belirli bir işlevi yerine getirirler ve herhangi bir zamanda kullanılabilirler. Fonksiyonlar temel olarak şu şekilde sınıflandırılır:

  • Kullanıcı Tanımlı İşlev (USF) — Programcının gereksinimlerine göre değiştirilebilen özelleştirilebilir işlevler.
  • Yerleşik İşlevler (BIF) — Özelleştirilemeyen ve mevcut olduğu şekilde kullanılması gereken işlevler.

upGrad'da Veri Bilimi Kurslarını çevrimiçi öğrenin

Python Lambda İşlevleri

Python Lambda işlevleri, kesin bir ada sahip olmadıkları için esasen anonimdir. Python'da normal bir işlevi belirtmek için bir def işlevi kullanılır. Bu arada, anonim bir Python işlevini tanımlamak için Lambda anahtar sözcüğü kullanılır.

Lambda işlevi, birkaç bağımsız değişken ancak yalnızca bir ifade alabilen küçük bir işlevdir. Ayrıca normal Python işlevlerinden daha kısıtlayıcı ancak özlü bir sözdizimine sahiptirler. Lambda işlevi, 1994 yılında harita (), filtre () ve azalt () işlevleriyle birlikte Python Dili'ne eklendi .

ABD - Veri Bilimi Programlarımıza göz atın

Veri Bilimi ve İş Analitiğinde Profesyonel Sertifika Programı Veri Biliminde Bilim Ustası Veri Biliminde Bilim Ustası Veri Biliminde İleri Düzey Sertifika Programı
Veri Biliminde Yönetici PG Programı Python Programlama Eğitim Kampı İş Karar Verme için Veri Biliminde Profesyonel Sertifika Programı Veri Biliminde İleri Program

Anonim bir işlev tanımlamak için, normal işlevler için kullanılan def gibi lambda anahtar sözcüğünü kullanmak gerekir. Python'da tanımlanan anonim bir işlevin üç bölümü vardır:

  • anahtar kelime lambda
  • Parametreler veya bağlı bir değişken
  • Fonksiyon gövdesi

Sözdizimi

Bir lambda işlevinin sözdizimi aşağıdaki gibidir:

Lambda p1, p2: ifade

p1 ve p2 buradaki parametrelerdir. Lambda işlevinde parametre eklemek için herhangi bir kısıtlama yoktur. İstediğiniz kadar çok veya az ekleyebilirsiniz. Ancak lambda işlevi sözdizimsel olarak bir ifadeyle sınırlıdır.

Python'da lambda işlevine örnekler:

örnek 1

x = ”Lambda Fonksiyonu”

# lambda baskıya geçer

(lambda x : yazdır(x))(x)

Çıktı

Lambda İşlevi

Örnek 2

x = lambda a : a + 10

yazdır(x(5))

Çıktı

15

Öğrencilerimiz ayrıca şunları da okudu: Python'u Çevrimiçi Ücretsiz Öğrenin

Normal fonksiyon ve lambda fonksiyonu arasındaki farklar

Lambda işlevi, normal işlevlerden bazı sözdizimsel farklılıklara sahiptir.

  • Gövdede yalnızca ifadeler kullanılır, ifadeler kullanılmaz. pass, assert, return veya upgrade gibi herhangi bir ifade kullanılırsa, çıktı bir SyntaxError gösterecektir.

Örnek

>>> (lambda x: iddia x == 2)(2)

Dosya "<input>", satır 1

(lambda x: iddia x == 2)(2)

^

SyntaxError: geçersiz sözdizimi

  • Bir lambda işlevi yalnızca tek bir ifade olarak var olabilir. İfade, birden çok dize kullanılarak gövdeye yayılmış olsa bile, yalnızca tek bir ifade olarak kalabilir.

Örnek :

>>> (lambda x:

… (x % 2 ve 'tek' veya 'çift'))(3)

'garip'

Lambda bağımsız değişkeni tek olduğunda, kod tek ve çift olmadığında dizeyi döndürür. Kod, parantez içinde olduğu gibi iki satıra yayılır ancak tek bir ifade olarak kalır.

  • Lambda işlevi, tür açıklamalarını desteklemez. Bir lambda sözdizimine ek açıklamalar eklemek, bir Sözdizimi hatasına neden olur.
  • IIFE veya Hemen Çağrılan İşlev İfadesi, tanımlandığı anda yürütülen bir işlevdir. Kendi Kendini Yürüten Anonim İşlev olarak da bilinir. IIFE, lambda işlevi tanımlandığı gibi çağrılabilir olduğundan, lambda işlevinin doğrudan bir sonucudur.

Şimdi normal fonksiyonlar ile lambda fonksiyonları arasındaki temel farkları görelim:

(Kaynak)

Lambda İşlevleri – Artıları ve Eksileri

Artıları

  • Kodu daha okunaklı hale getirir.
  • Bir defa kullanılan fonksiyonlar için idealdir.
  • Kolay anlaşılır ve basit mantıksal açıklamalar için kullanılabilir.

Eksileri:

  • Birden çok bağımsız ifade gerçekleştirilemez.
  • Bir kod normal (def) bir işlevde bir satırdan daha fazlasına yayılacaksa, lambda işlevini kullanmak ideal değildir.
  • Tüm girdiler, çıktılar ve işlemler, normal bir işlevde olduğu gibi bir belge dizisinde açıklanamaz.

Lambdalar nerede kullanılır?

Normal def işlevleri ve lambda işlevlerinin temel farklılıkları olsa da, dahili olarak, dahili olarak ele alınırlar.

  • Python'da lambda fonksiyonlarının yaygın kullanımı fonksiyonel programlama içindir. Lambda'yı, bir işlevi farklı bir işleve parametre olarak sağlamak için işlevsel programlamada kullanabilirsiniz.
  • Bir işlevi belirtmek için satır sayısını azaltmanız gerekiyorsa, lambda'lar gitmenin yoludur.
  • Lambda ayrıca map(), Reduce() vb. gibi üst düzey işlevlerle de kullanılır.
  • UI çerçeve olaylarına verilen yanıt, lambda işlevleri kullanılarak izlenebilir.

Lambda işlevlerini kullanmaktan nerede kaçınılır?

  • Karmaşık lambda işlevleri yazmak, şifresini çözmek zor olacağından iyi bir uygulama değildir.
  • Yinelenen işlemler için lambda işlevlerini kullanmaktan kaçının.
  • Kod Python Stil Kılavuzuna (PEP8) uymuyorsa.

Lambda işlevleri, tıpkı normal işlevler gibi test edilir. Bunun için hem unittest hem de doctest kullanılabilir.

Popüler ABD - Veri Bilimi Makalelerimizi okuyun

Sertifikalı Veri Analizi Kursu Sertifikalı JavaScript Ücretsiz Çevrimiçi Kursu En Çok Sorulan Python Mülakat Soruları ve Cevapları
Veri Analisti Mülakat Soruları ve Cevapları ABD'deki En İyi Veri Bilimi Kariyer Seçenekleri [222] SQL'e Karşı MySQL – Fark Nedir?
Veri Türleri İçin Nihai Kılavuz ABD'de Python Geliştirici Maaşı ABD'de Veri Analisti Maaşı: Ortalama Maaş

Filtreli Lambda İşlevi()

Filter() yerleşik bir Python işlevidir ve bağımsız değişkenler olarak listelenir. Filtre (), tüm yinelenebilir öğeler bir listedeyken kullanılır ve işlevin doğru olduğu öğeleri içeren başka bir liste döndürülür.

Örnek :

# Örneklemek için Python kodu

# filtre() ile lambda()

li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]

final_list = liste(filtre(lambda x: (x%2 != 0) , li))

print(final_list)

Çıktı:

[5, 7, 97, 77, 23, 73, 61]

(kaynak)

Örnek :

# Listeden yalnızca çift öğeleri filtrelemek için program

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

yazdır(yeni_liste)

Çıktı

[4, 6, 8, 12]

map() ile Lambda Fonksiyonu

Harita işlevi, tüm öğeler listedeyken kullanılır ve liste, her öğe için o işlev tarafından döndürülen öğelerle birlikte döndürülür.

Örnek : Listedeki her bir öğenin değerini ikiye katlamak için kod aşağıdaki gibidir:

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = liste(harita(lambda x: x * 2 , my_list))

yazdır(yeni_liste)

Çıktı:

[2, 10, 8, 12, 16, 22, 6, 24]

Örnek : Listedeki her sayıyı küplemek için kod aşağıdaki gibidir.

liste_1 = [1,2,3,4,5,6,7,8,9]

küp = harita(lambda x: pow(x,3), list_1)

liste(küp)

Çıktı:

[1, 8, 27, 64, 125, 216, 343, 512, 729]

azaltma() İşlevli Lambda İşlevi

Python'daki azalt() işlevi bir liste ve bir argümandır. Yinelenebilir ve yeni bir indirgenmiş liste döndürmek için çağrılır. Ekleme işlevine biraz benzer.

örnek 1

Not: Bu örnek, functools kitaplığından alınmıştır.

Bir listenin toplamını almak için kod şöyle olur:

# Örneklemek için Python kodu

# azaltma() ile lambda()

# bir listenin toplamını almak için

functools'tan içe aktarma azalt

li = [5, 8, 10, 20, 50, 100]

toplam = azalt((lambda x, y: x + y), li)

yazdır (toplam)

Çıktı:

193

Çözüm

Python'da lambda fonksiyonlarının kullanımı uzun zamandır programcılar arasında tartışmalı bir konu olmuştur. Lambdaların yerleşik işlevler, liste kavrayışları ve standart kitaplıklarla değiştirilebileceği doğru olsa da, lambda işlevlerinin anlaşılması da gereklidir. Programlamanın temel ilkelerini anlamanıza ve daha iyi kodlar yazmanıza yardımcı olur.

Lambda işlevlerini kişisel olarak kullanmasanız bile, diğer kişilerin programlarında bunlarla karşılaşabileceğiniz durumlar olabilir. Bu nedenle, yine de lambda işlevleri hakkında temel bilgilere sahip olmanız önerilir.

Tam teşekküllü Python öğrenmek ve veri bilimi ve iş analitiği alanındaki kariyerinizi geliştirmek istiyorsanız, upGrad'ın En İyi ABD Üniversitesi - Maryland Üniversitesi'nden Veri Bilimi ve İş Analitiği alanında çevrimiçi Profesyonel Sertifika Programı en iyi seçeneğinizdir.

Program, dünyanın en iyi 100 üniversitesinden birinde eğitim görme ve bu alanda başarı şansınızı artırmak için Maryland Smith'ten bir sertifika kazanma şansı sunuyor. 300'den fazla işe alım ortağına erişim, yeni başlayanlar için garantili görüşme fırsatları ve altı mentorluk çağrısı ile 9 aylık bir kurstur.

Python'da dekoratörler nelerdir?

Python'da bir işlevin argümanını alan ve başka bir işlevi döndüren bir işleve dekoratör denir. Dekoratör sözdizimi ile gösterilir. Dekoratörler lambda işlevlerinde uygulanabilir ancak dekoratör sözdizimi ile uygulanamaz. Genellikle hata ayıklama amacıyla uygulanır. Alternatif olarak, dekoratör olarak bir lambda işlevi kullanılabilir, ancak bu tavsiye edilmez.

Python Lambda işlevlerinde argümanlar nelerdir?

Normal def işlevleri gibi Lambda işlevleri, argümanları iletmenin farklı yollarını destekler. Bunlar şunları içerir: Yalnızca anahtar sözcük bağımsız değişkeni Anahtar sözcük bağımsız değişkenleri/ Adlandırılmış bağımsız değişkenler Varargs/ Değişken bağımsız değişken listesi Anahtar sözcük bağımsız değişkenlerinin değişken listesi.

Python Lambda işlevlerinde kapanışlar nelerdir?

Kapanışlar veya sözcüksel kapanışlar, parametreler dışındaki her serbest değişkenin, işlevin kapsamı içindeki belirli bir değere bağlı olduğu işlevlerdir. Kapanışlar her yerden çağrılabilir. Normal def işlevleri gibi Lambda işlevleri de kapalı olabilir.