Fungsi Python Lambda dengan contoh

Diterbitkan: 2022-06-04

Daftar isi

Python — Sebuah Pengantar

Python adalah bahasa pemrograman tujuan umum yang sangat populer. Ini adalah bahasa tingkat tinggi yang diinterpretasikan yang menekankan keterbacaan kode dengan penggunaan lekukan yang signifikan. Python digunakan oleh programmer untuk menulis kode yang bersih dan logis untuk proyek skala apa pun.

Python dikandung pada 1980-an sebagai penerus bahasa pemrograman ABC oleh Guido Van Rossum. Sejak itu, Python tetap menjadi bahasa pemrograman yang populer karena keserbagunaannya.

Fungsi — Pengantar

Fungsi adalah blok kode yang bekerja ketika dipanggil dapat dipanggil n kali dalam suatu program. Mereka adalah pernyataan kode terstruktur dan melakukan fungsi tertentu, dan dapat digunakan kapan saja. Fungsi pada dasarnya diklasifikasikan sebagai:

  • Fungsi yang Ditentukan Pengguna (USF) — Fungsi yang dapat disesuaikan yang dapat diubah sesuai kebutuhan pemrogram.
  • Built-in Functions (BIF) — Fungsi yang tidak dapat dikustomisasi dan harus digunakan sebagaimana tersedia.

Pelajari Kursus Ilmu Data online di upGrad

Fungsi Python Lambda

Fungsi Python Lambda pada dasarnya anonim karena tidak memiliki nama yang pasti. Fungsi def digunakan untuk menunjukkan fungsi normal dalam Python. Sementara itu, kata kunci Lambda digunakan untuk mendefinisikan fungsi Python anonim.

Fungsi Lambda adalah fungsi kecil yang dapat mengambil beberapa argumen tetapi hanya satu ekspresi. Mereka juga memiliki sintaks yang lebih ketat tetapi ringkas daripada fungsi Python biasa. Fungsi lambda ditambahkan ke Bahasa Python pada tahun 1994 bersama dengan fungsi map (), filter (), dan reduce ().

Periksa AS - Program Ilmu Data kami

Program Sertifikat Profesional dalam Ilmu Data dan Analisis Bisnis Master of Science dalam Ilmu Data Master of Science dalam Ilmu Data Program Sertifikat Lanjutan dalam Ilmu Data
Program PG Eksekutif dalam Ilmu Data Bootcamp Pemrograman Python Program Sertifikat Profesional dalam Ilmu Data untuk Pengambilan Keputusan Bisnis Program Lanjutan dalam Ilmu Data

Untuk mendefinisikan fungsi anonim, kita harus menggunakan kata kunci lambda seperti def digunakan untuk fungsi normal. Ada tiga bagian dari fungsi anonim yang didefinisikan dengan Python:

  • Kata kunci lambda
  • Parameter atau variabel terikat
  • fungsi tubuh

Sintaksis

Sintaks untuk fungsi lambda adalah sebagai berikut:

Lambda p1, p2: ekspresi

P1 dan p2 adalah parameter di sini. Tidak ada batasan untuk menambahkan parameter dalam fungsi lambda. Anda dapat menambahkan sebanyak atau sesedikit yang Anda inginkan. Tetapi fungsi lambda secara sintaksis terbatas pada satu ekspresi.

Contoh untuk fungsi lambda dengan Python:

Contoh 1

x = “Fungsi Lambda”

# lambda lolos untuk dicetak

(lambda x : cetak(x))(x)

Keluaran

Fungsi Lambda

Contoh 2

x = lambda a : a + 10

cetak(x(5))

Keluaran

15

Pembelajar kami juga membaca: Belajar Python Online Gratis

Perbedaan antara fungsi normal dan fungsi lambda

Fungsi lambda memiliki beberapa perbedaan sintaksis dari fungsi normal.

  • Hanya ekspresi dan bukan pernyataan yang digunakan dalam isi. Jika ada pernyataan seperti pass, assert, return, atau raise yang digunakan, output akan menampilkan SyntaxError.

Contoh

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

File “<input>”, baris 1

(lambda x: tegaskan x == 2)(2)

^

SyntaxError: sintaks tidak valid

  • Fungsi lambda hanya bisa ada sebagai ekspresi tunggal. Bahkan jika ekspresi tersebar di seluruh tubuh menggunakan beberapa string, itu hanya bisa tetap sebagai ekspresi tunggal.

Contoh :

>>> (lambda x:

… (x % 2 dan 'ganjil' atau 'genap'))(3)

'aneh'

Ketika argumen lambda ganjil, kode mengembalikan string ganjil dan genap jika tidak. Kode membentang di dua baris seperti di dalam tanda kurung tetapi tetap sebagai ekspresi tunggal.

  • Fungsi lambda tidak mendukung anotasi jenis. Menambahkan anotasi ke sintaks lambda akan menyebabkan Syntaxerror.
  • IIFE atau Ekspresi Fungsi Segera Dipanggil adalah fungsi yang dieksekusi segera setelah didefinisikan. Hal ini juga dikenal sebagai Self Executing Anonymous Function. IIFE adalah konsekuensi langsung dari fungsi lambda, karena fungsi lambda dapat dipanggil seperti yang didefinisikan.

Sekarang, mari kita lihat perbedaan utama antara fungsi normal dan fungsi lambda adalah:

(Sumber)

Fungsi Lambda – Pro dan Kontra

kelebihan

  • Itu membuat kode lebih mudah dibaca.
  • Ideal untuk fungsi yang digunakan satu kali.
  • Mudah dipahami dan dapat digunakan untuk penjelasan logis sederhana.

Kontra:

  • Beberapa ekspresi independen tidak dapat dilakukan.
  • Menggunakan fungsi lambda tidak ideal jika kode akan menjangkau lebih dari satu baris dalam fungsi normal (def).
  • Semua input, output, dan operasi tidak dapat dijelaskan dalam docstring seperti pada fungsi normal.

Di mana menggunakan Lambdas?

Meskipun fungsi def normal dan fungsi lambda memiliki perbedaan utama, secara internal, mereka diperlakukan secara internal.

  • Penggunaan umum fungsi lambda dalam Python adalah untuk pemrograman fungsional. Anda dapat menggunakan lambda dalam pemrograman fungsional untuk memasok fungsi sebagai parameter ke fungsi yang berbeda.
  • Jika Anda perlu mengurangi jumlah baris untuk menentukan suatu fungsi, lambdas adalah caranya.
  • Lambda juga digunakan dengan fungsi tingkat tinggi seperti map(), reduce() dll.
  • Respons terhadap kejadian kerangka kerja UI dapat dilacak menggunakan fungsi lambda.

Di mana harus berpantang menggunakan fungsi lambda?

  • Menulis fungsi lambda yang rumit bukanlah praktik yang baik karena akan sulit untuk didekripsi.
  • Menahan diri dari menggunakan fungsi lambda untuk operasi berulang.
  • Jika kode tidak mengikuti Panduan Gaya Python (PEP8).

Fungsi Lambda diuji persis seperti fungsi biasa. Baik unittest dan doctest dapat digunakan untuk ini.

Baca AS Populer kami - Artikel Ilmu Data

Kursus Analisis Data dengan Sertifikasi Kursus Online Gratis JavaScript Dengan Sertifikasi Pertanyaan & Jawaban Wawancara Python Paling Banyak Diajukan
Pertanyaan dan Jawaban Wawancara Analis Data Pilihan Karir Ilmu Data Teratas di AS [2022] SQL Vs MySQL – Apa Bedanya?
Panduan Utama untuk Jenis Data Gaji Pengembang Python di AS Gaji Analis Data di AS: Gaji Rata-Rata

Fungsi Lambda dengan filter()

Filter() adalah fungsi Python bawaan dan daftar sebagai argumen. Filter () digunakan ketika semua item yang dapat diubah ada di daftar, dan daftar lain dikembalikan yang berisi item yang fungsinya benar.

Contoh :

# Kode Python untuk diilustrasikan

# filter() dengan lambda()

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

final_list = daftar(filter(lambda x: (x%2 != 0) , li))

cetak(daftar_akhir)

Keluaran:

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

(sumber)

Contoh :

# Program untuk menyaring hanya item genap dari daftar

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

daftar_baru = daftar(filter(lambda x: (x%2 == 0) , daftar_saya))

cetak (daftar_baru)

Keluaran

[4, 6, 8, 12]

Fungsi Lambda dengan peta ()

Fungsi peta digunakan ketika semua item ada dalam daftar, dan daftar dikembalikan dengan item yang dikembalikan oleh fungsi itu untuk setiap item.

Contoh : Untuk menggandakan nilai setiap item dalam daftar, kodenya adalah sebagai berikut:

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

daftar_baru = daftar(peta(lambda x: x * 2 , daftar_saya))

cetak (daftar_baru)

Keluaran:

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

Contoh : Untuk mengkubus setiap angka dalam daftar, kodenya adalah sebagai berikut

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

pangkat tiga = peta(lambda x: pow(x,3), list_1)

daftar (potong dadu)

Keluaran:

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

Fungsi Lambda dengan Reduce() Fungsi

Fungsi reduce() dalam Python adalah daftar dan argumen. Itu dipanggil untuk mengembalikan daftar tereduksi yang dapat diubah dan baru. Ini agak mirip dengan fungsi penambahan.

Contoh 1

Catatan: contoh ini berasal dari pustaka functools.

Untuk mendapatkan jumlah daftar, kodenya adalah,

# Kode Python untuk diilustrasikan

# kurangi() dengan lambda()

# untuk mendapatkan jumlah daftar

dari functools impor mengurangi

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

jumlah = kurangi((lambda x, y: x + y), li)

cetak (jumlah)

Keluaran:

193

Kesimpulan

Penggunaan fungsi lambda di Python telah menjadi topik kontroversial di kalangan programmer sejak lama. Meskipun benar bahwa lambda dapat diganti dengan fungsi bawaan, pemahaman daftar, dan pustaka standar, pemahaman tentang fungsi lambda juga diperlukan. Ini membantu Anda memahami prinsip-prinsip dasar pemrograman dan menulis kode yang lebih baik.

Bahkan jika Anda tidak menggunakan fungsi lambda secara pribadi, mungkin ada contoh di mana Anda mungkin menemukan ini di program orang lain. Jadi, Anda disarankan untuk memiliki pengetahuan dasar tentang fungsi lambda.

Jika Anda ingin mempelajari Python sepenuhnya dan meningkatkan karir Anda dalam ilmu data dan analitik bisnis, Program Sertifikat Profesional online upGrad dalam Ilmu Data dan Analisis Bisnis dari Top US University – University of Maryland adalah pilihan terbaik Anda.

Program ini menawarkan kesempatan untuk belajar di salah satu dari 100 universitas global terbaik dan mendapatkan sertifikat dari Maryland Smith untuk meningkatkan peluang Anda untuk sukses di bidang tersebut. Ini adalah kursus 9 bulan dengan akses ke 300+ mitra perekrutan, peluang wawancara yang terjamin untuk mahasiswa baru, dan enam panggilan bimbingan.

Apa itu dekorator dengan Python?

Fungsi dalam Python yang mengambil argumen dari satu fungsi dan mengembalikan fungsi lain disebut dekorator. Itu dilambangkan dengan sintaks dekorator. Dekorator dapat diterapkan dalam fungsi lambda tetapi tidak dengan sintaks dekorator. Biasanya diimplementasikan untuk tujuan debugging. Atau, fungsi lambda dapat digunakan sebagai dekorator, tetapi tidak disarankan.

Apa argumen dalam fungsi Python Lambda?

Fungsi Lambda seperti fungsi def normal mendukung berbagai cara menyampaikan argumen. Ini termasuk: Argumen kata kunci saja Argumen kata kunci/ Argumen bernama Varargs/ Daftar argumen variabel Daftar argumen kata kunci variabel.

Apa itu penutupan dalam fungsi Python Lambda?

Penutupan atau penutupan leksikal adalah fungsi di mana setiap variabel bebas kecuali parameter terikat pada nilai tertentu dalam lingkup fungsi yang terlampir. Penutupan dapat dipanggil dari mana saja. Fungsi Lambda seperti fungsi def normal dapat berupa penutupan.