Panduan Pemula untuk Memahami Fungsi Python Lambda

Panduan Pemula untuk Memahami Fungsi Python Lambda

Lambdas di Python adalah salah satu fitur yang paling berguna, penting, dan menarik untuk diketahui. Sayangnya, mereka juga mudah salah paham dan salah paham.





Dalam artikel ini, kami akan menjelaskan semua yang perlu Anda ketahui tentang fungsi misterius ini, cara menggunakannya, dan mengapa mereka berguna.





Sebelum menyelami contoh-contoh praktis ini, Anda mungkin ingin menyiapkan lingkungan virtual Python . Jika Anda bahkan tidak ingin melakukan itu, maka Anda setidaknya harus mencoba contoh-contoh ini dengan shell Python online interaktif .





Apa itu Lambda dengan Python?

Lambda hanyalah cara untuk mendefinisikan fungsi dengan Python. Mereka kadang-kadang dikenal sebagai 'operator lambda' atau 'fungsi lambda'.

Jika Anda pernah menggunakan Python sebelumnya, Anda mungkin telah mendefinisikan fungsi Anda menggunakan def kata kunci, dan sejauh ini berfungsi dengan baik untuk Anda. Jadi mengapa ada cara lain untuk melakukan hal yang sama?



Perbedaannya adalah fungsi lambda bersifat anonim. Artinya, mereka adalah fungsi yang tidak perlu diberi nama. Mereka digunakan untuk membuat fungsi kecil sekali pakai dalam kasus di mana fungsi 'nyata' akan terlalu besar dan besar.

Lambdas mengembalikan objek fungsi, yang dapat ditetapkan ke variabel. Lambdas dapat memiliki sejumlah argumen, tetapi mereka hanya dapat memiliki satu ekspresi. Anda tidak dapat memanggil fungsi lain di dalam lambdas.





Penggunaan paling umum untuk fungsi lambda adalah dalam kode yang membutuhkan fungsi satu baris sederhana, di mana akan berlebihan untuk menulis fungsi normal yang lengkap. Ini dibahas secara lebih rinci di bawah, di bawah 'Bagaimana Dengan Peta, Filter, dan Kurangi?'.

Cara Menggunakan Lambdas dengan Python

Sebelum melihat fungsi lambda, mari kita lihat fungsi super dasar yang didefinisikan dengan cara 'tradisional':





def add_five(number):
return number + 5

print(add_five(number=4))

Fungsi ini sangat mendasar, tetapi berfungsi untuk mengilustrasikan lambda. Anda mungkin lebih kompleks dari ini. Fungsi ini menambahkan lima ke nomor apa pun yang diteruskan melalui nomor parameter.

Berikut tampilannya sebagai fungsi lambda:

add_five = lambda number: number + 5

print(add_five(number=4))

Daripada menggunakan def , kata lambda digunakan. Tidak ada tanda kurung yang diperlukan, tetapi kata-kata apa pun yang mengikuti lambda kata kunci dibuat sebagai parameter. Titik dua digunakan untuk memisahkan parameter dan ekspresi. Dalam hal ini, ekspresinya adalah nomor + 5 .

Tidak perlu menggunakan kembali kata kunci --- lambda melakukan ini untuk Anda secara otomatis.

Inilah cara Anda membuat fungsi lambda dengan dua argumen:

cara mengganti emoji di messenger
add_numbers_and_five = lambda number1, number2: number1 + number2 + 5

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

Jika Anda masih tidak yakin dengan maksud lambda, bagian selanjutnya akan menyelami dan membantu Anda melihat cahayanya.

Python Lambdas Dengan Peta, Filter, dan Perkecil

Pustaka inti Python memiliki tiga metode yang disebut peta , mengurangi , dan Saring . Metode ini mungkin merupakan alasan terbaik untuk menggunakan fungsi lambda.

NS peta function mengharapkan dua argumen: fungsi dan daftar. Dibutuhkan fungsi itu dan menerapkannya ke setiap elemen dalam daftar, mengembalikan daftar elemen yang dimodifikasi sebagai objek peta. NS Daftar fungsi digunakan untuk mengubah objek peta yang dihasilkan kembali menjadi daftar lagi.

Berikut cara menggunakan peta tanpa lambda:

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

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

Fungsi peta ini cukup berguna, tetapi bisa lebih baik. NS tambahkan_lima fungsi dilewatkan sebagai argumen, tetapi bagaimana jika Anda tidak ingin membuat fungsi setiap kali Anda menggunakan peta? Anda dapat menggunakan lambda sebagai gantinya!

Berikut tampilan kode yang sama, hanya dengan fungsi yang diganti dengan lambda:

game apa yang harus saya mainkan diagram alur
list1 = [2, 4, 6, 8]
print(list1)

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

Seperti yang Anda lihat, keseluruhannya tambahkan_lima fungsi tidak lagi diperlukan. Sebagai gantinya, fungsi lambda digunakan untuk menjaga semuanya tetap rapi.

Dengan Saring fungsi, prosesnya hampir sama. Saring mengambil fungsi dan menerapkannya ke setiap elemen dalam daftar dan membuat daftar baru hanya dengan elemen yang menyebabkan fungsi mengembalikan True.

Pertama, tanpa lambda:

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)

Tidak ada yang salah dengan kode ini, tetapi menjadi agak panjang. Mari kita lihat berapa banyak baris yang dapat dihapus oleh lambda:

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

Fungsi lambda telah menggantikan kebutuhan untuk keseluruhan lebih besar_dari_ten_fungsi ! Dan itu dilakukan dalam lima kata sederhana. Inilah sebabnya mengapa lambda sangat kuat: mereka mengurangi kekacauan untuk tugas-tugas sederhana.

Akhirnya, mari kita lihat mengurangi . Reduce adalah fungsi Python keren lainnya. Ini menerapkan perhitungan bergulir untuk semua item dalam daftar. Anda dapat menggunakan ini untuk menghitung jumlah total, atau mengalikan semua angka bersama-sama:

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

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

Contoh ini perlu diimpor mengurangi dari functools modul, tapi jangan khawatir, modul functools adalah bagian dari pustaka inti Python.

Ceritanya hampir sama dengan lambda, tidak perlu fungsi:

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

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

Hal yang Harus Diwaspadai Dengan Python Lambdas

Contoh-contoh ini telah menunjukkan betapa mudahnya fungsi lambda, bersama dengan memetakan, memfilter, dan mengurangi, dari pustaka inti Python. Namun, ada beberapa kegunaan di mana fungsi lambda tidak membantu.

Jika Anda melakukan sesuatu selain tugas dasar, atau ingin memanggil metode lain, gunakan fungsi normal. Lambdas sangat bagus untuk satu fungsi anonim, tetapi mereka hanya boleh memiliki satu ekspresi. Jika lambda Anda mulai terlihat seperti ekspresi reguler, maka mungkin sudah waktunya untuk melakukan refactor ke metode khusus.

Untuk tips lebih lanjut, periksa kami panduan untuk pemrograman berorientasi objek dengan Python dan lihat panduan FAQ kami untuk pemula Python.

Membagikan Membagikan Menciak Surel 3 Cara Mengecek Email Asli atau Palsu

Jika Anda menerima email yang terlihat agak meragukan, sebaiknya periksa keasliannya. Berikut adalah tiga cara untuk mengetahui apakah email itu asli.

Baca Selanjutnya
Topik-topik yang berkaitan
  • Pemrograman
  • Python
  • Tutorial Pengkodean
Tentang Penulis Joe Coburn(136 Artikel Diterbitkan)

Joe adalah lulusan Ilmu Komputer dari University of Lincoln, Inggris. Dia adalah pengembang perangkat lunak profesional, dan ketika dia tidak menerbangkan drone atau menulis musik, dia sering terlihat sedang mengambil foto atau membuat video.

More From Joe Coburn

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan