Apakah Fungsi Lambda dan Bagaimana Menggunakannya?



Pelajari fungsi Python lambda bersama dengan perbezaan antara fungsi normal dan fungsi lambda dan bagaimana ia boleh digunakan dalam penapis (), peta (), kurangkan ().

Nama adalah konvensyen yang digunakan untuk merujuk atau menangani entiti mana pun. Hampir semua perkara di sekeliling kita mempunyai nama. Dunia pengaturcaraan juga sesuai dengan ini. Tetapi adakah suatu keharusan untuk menamakan semuanya? Atau bolehkah anda mempunyai sesuatu yang 'tidak dikenali'? Jawapannya, ya. ' menyediakan Lambda Functions, juga dikenali sebagai fungsi Anonymous yang sebenarnya tidak bernama. Oleh itu, mari maju untuk mengetahui mengenai ‘Anonymous Mysteries’ Python ini, dalam urutan berikut.

Jadi mari kita mulakan :)





Mengapa menggunakan Fungsi Python Lambda?


Tujuan utama fungsi tanpa nama muncul apabila anda memerlukan beberapa fungsi sekali sahaja. Mereka boleh dibuat di mana sahaja mereka memerlukan. Atas sebab ini, Fungsi Python Lambda juga dikenali sebagai fungsi buang yang digunakan bersama dengan fungsi yang telah ditentukan lain seperti penapis (), peta (), dan lain-lain. Fungsi ini membantu mengurangkan bilangan baris kod anda jika dibandingkan dengan biasa .

Untuk membuktikannya, mari kita lanjutkan dan pelajari mengenai fungsi Python Lambda.



Apakah Fungsi Python Lambda?


Fungsi Python Lambda adalah fungsi yang tidak mempunyai nama. Mereka juga dikenali sebagai fungsi tanpa nama atau tanpa nama. Perkataan 'lambda' bukan nama, tetapi kata kunci. Kata kunci ini menetapkan bahawa fungsi yang diikuti adalah tanpa nama.

Sekarang setelah anda mengetahui fungsi fungsi tanpa nama ini, mari kita bergerak lebih jauh untuk melihat bagaimana anda menulis fungsi Python Lambda ini.

Bagaimana cara menulis Fungsi Lambda di Python?

Fungsi Lambda dibuat menggunakan operator lambda dan sintaksnya adalah seperti berikut:



SINTAX:

hujah lambda: ungkapan

Python fungsi lambda boleh mempunyai sebilangan hujah tetapi hanya memerlukan satu ungkapan. Input atau argumen boleh bermula pada 0 dan mencapai batas apa pun. Sama seperti fungsi lain, adalah baik untuk fungsi lambda tanpa input. Oleh itu, anda boleh mempunyai fungsi lambda dalam salah satu format berikut:

CONTOH:

lambda: 'Nyatakan tujuannya'

Di sini, fungsi lambda tidak mengambil hujah.

CONTOH:

lambda asatu: 'Nyatakan penggunaan asatu'

Di sini, lambda mengambil satu input yang merupakansatu.

cara membuat sesi di java

Begitu juga, anda boleh memiliki lambda asatu, ke2, ke3..untukn.

Mari kita ambil beberapa contoh untuk menunjukkan ini:

CONTOH 1:

a = lambda x: x * x cetakan (a (3))

PENGELUARAN: 9

CONTOH 2:

a = lambda x, y: x * y cetakan (a (3,7))

PENGELUARAN: dua puluh satu

Seperti yang anda lihat, saya telah mengambil dua contoh di sini. Contoh pertama menggunakan fungsi lambda dengan hanya satu ungkapan sedangkan contoh kedua mempunyai dua argumen yang disampaikan kepadanya. Harap maklum bahawa kedua-dua fungsi mempunyai satu ungkapan diikuti dengan argumen. Oleh itu, fungsi lambda tidak dapat digunakan di mana anda memerlukan ungkapan berbilang baris.

Sebaliknya, fungsi python normal boleh mengambil sebilangan pernyataan dalam definisi fungsinya.

Bagaimana fungsi Anonymous mengurangkan saiz kod?

Sebelum membandingkan jumlah kod yang diperlukan, mari tulis terlebih dahulu sintaks dan bandingkan dengan fungsi lambda yang dijelaskan sebelumnya.

Sebarang fungsi normal dalam Python ditentukan menggunakan a def kata kunci seperti berikut:

SINTAX:

def function_name (parameter):
pernyataan

Seperti yang anda lihat, jumlah kod yang diperlukan untuk fungsi lambda jauh lebih sedikit daripada fungsi normal.

tetapkan windows classpath java 10

Mari kita tulis semula contoh yang kita ambil lebih awal menggunakan fungsi normal sekarang.

CONTOH:

def my_func (x): kembali cetakan x * x (my_func (3))

PENGELUARAN: 9

Seperti yang anda lihat, dalam contoh di atas, kita memerlukan penyataan pengembalian dalam my_func untuk menilai nilai kuadrat 3. Sebaliknya, fungsi lambda tidak menggunakan pernyataan pengembalian ini, tetapi, badan fungsi tanpa nama ditulis dalam baris yang sama dengan fungsi itu sendiri, selepas simbol titik dua. Oleh itu saiz fungsi lebih kecil daripada my_func.

Walau bagaimanapun, fungsi lambda dalam contoh di atas, disebut menggunakan yang lain a. Ini dilakukan kerana fungsi-fungsi ini tidak bernama dan oleh itu memerlukan sebilangan nama dipanggil. Tetapi, kenyataan ini mungkin membingungkan mengapa menggunakan fungsi tanpa nama seperti itu apabila anda perlu memberikan sebilangan nama lain untuk memanggilnya? Dan tentu saja, setelah memberikan nama a ke fungsi saya, ia tidak akan kekal namanya lagi! Betul?

Ini adalah soalan yang sah, tetapi intinya adalah, ini bukan cara yang betul untuk menggunakan fungsi tanpa nama ini.

Fungsi tanpa nama paling sesuai digunakan dalam yang lain fungsi pesanan tinggi yang menggunakan beberapa fungsi sebagai argumen atau, mengembalikan fungsi sebagai output. Untuk menunjukkan ini, mari kita beralih ke topik seterusnya.

Fungsi Python Lambda dalam fungsi yang ditentukan pengguna:

Seperti yang disebutkan di atas, fungsi lambda digunakan dalam fungsi lain untuk menandakan kelebihan terbaik.

Contoh berikut terdiri daripada new_func yang merupakan fungsi python normal yang mengambil satu argumen x. Argumen ini kemudian ditambahkan ke beberapa argumen y yang tidak diketahui yang dibekalkan melalui fungsi lambda.

CONTOH:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) cetak (t (3)) cetak (u (3))

PENGELUARAN:

6
5
Seperti yang anda lihat, dalam contoh di atas, fungsi lambda yang terdapat dalam new_func dipanggil setiap kali kita menggunakan new_func (). Setiap kali, kita dapat menyampaikan nilai yang berasingan ke argumen.

Sekarang setelah anda melihat bagaimana menggunakan fungsi tanpa nama dalam fungsi yang lebih tinggi, mari sekarang kita maju untuk memahami salah satu penggunaannya yang paling popular yang terdapat dalam kaedah penapis (), peta () dan pengurangan ().

Cara menggunakan fungsi Tanpa Nama dalam penapis (), peta () dan mengurangkan ():

Fungsi tanpa nama dalam penapis ():

penapis ():

Kaedah filter () digunakan untuk menyaring iterables yang diberikan (senarai, set, dll) dengan bantuan fungsi lain, diteruskan sebagai argumen, untuk menguji semua elemen menjadi benar atau salah.

Sintaks fungsi ini adalah:

SINTAX:

penapis (fungsi, berulang)

Sekarang pertimbangkan contoh berikut:

CONTOH:

my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a: (a / 3 == 2), my_list)) cetak (senarai_ baru)

PENGELUARAN: [6]

Di sini, my_list adalah senarai nilai berulang yang diteruskan ke fungsi penapis. Fungsi ini menggunakan fungsi lambda untuk memeriksa sama ada terdapat nilai dalam senarai, yang akan sama dengan 2 apabila dibahagi dengan 3. Keluarannya terdiri daripada senarai yang memenuhi ekspresi yang terdapat dalam fungsi tanpa nama.

peta ():

Fungsi peta () di Python adalah fungsi yang menerapkan fungsi tertentu untuk semua iterables dan mengembalikan senarai baru.

SINTAX:

peta (fungsi, berulang)

Mari kita ambil contoh untuk menunjukkan penggunaan fungsi lambda dalam fungsi peta ():

CONTOH:

my_list = [2,3,4,5,6,7,8] new_list = list (peta (lambda a: (a / 3! = 2), li)) cetak (new_list)

PENGELUARAN:

[Benar, Benar, Benar, Benar, Palsu, Benar, Benar]

Output di atas menunjukkan bahawa, setiap kali nilai iterables tidak sama dengan 2 apabila dibahagi dengan 3, hasil yang dikembalikan mestilah Benar. Oleh itu, untuk semua elemen dalam my_list, ia kembali benar kecuali nilai 6 apabila keadaan berubah menjadi Salah.

kurangkan ():

Fungsi red () digunakan untuk menerapkan beberapa fungsi lain ke daftar elemen yang diteruskan sebagai parameter kepadanya dan akhirnya mengembalikan satu nilai.

Sintaks fungsi ini adalah seperti berikut:

SINTAX:

mengurangkan (fungsi, urutan)

CONTOH:

dari functools import mengurangkan mengurangkan (lambda a, b: a + b, [23,21,45,98])

Contoh di atas digambarkan dalam gambar berikut:

mengurangkan-python lambda-edureka

java bagaimana menggunakan ini

PENGELUARAN: 187

Hasilnya jelas menunjukkan bahawa semua elemen dalam senarai itu ditambah secara berterusan untuk mengembalikan keputusan akhir.

Dengan ini, kita mengakhiri artikel ini mengenai 'Python Lambda'. Semoga anda jelas dengan semua yang telah dikongsi dengan anda. Pastikan anda berlatih sebanyak mungkin dan kembalikan pengalaman anda.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog 'Python Lambda' ini dan kami akan menghubungi anda secepat mungkin.

Untuk mendapatkan pengetahuan mendalam tentang Python bersama dengan pelbagai aplikasinya, anda boleh mendaftar secara langsung dengan sokongan 24/7 dan akses seumur hidup.