Fungsi Lambda, juga disebut sebagai 'Fungsi Anonim' sama dengan fungsi python biasa tetapi dapat didefinisikan tanpa nama
1. Apa itu Fungsi Lambda di Python?
Fungsi Lambda, juga disebut sebagai 'Fungsi Anonim' sama dengan fungsi python biasa tetapi dapat didefinisikan tanpa nama. Sementara fungsi normal didefinisikan menggunakan kata kunci # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _8, fungsi anonim didefinisikan menggunakan kata kunci # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9. Namun, mereka dibatasi untuk satu baris ekspresi. Mereka dapat mengambil beberapa parameter seperti pada fungsi biasa
2. Sintaks Fungsi Lambda
Sintaks untuk fungsi ________0______9 diberikan oleh. Using def: 25 1 Perhatikan, bisa ada sejumlah argumen tetapi hanya bisa berisi satu ekspresi. Tidak ada pernyataan Using def: 25 _2 yang biasanya ada dalam sintaks fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8. Fungsi hanya akan mengembalikan nilai ekspresi meskipun tidak ada pernyataan Using def: 25 2
Isi
- Cara menggunakan fungsi lambda. Contoh Sederhana
3. Kebutuhan akan Fungsi Lambda
Setidaknya ada 3 alasan
- Fungsi Lambda mengurangi jumlah baris kode jika dibandingkan dengan fungsi python normal yang ditentukan menggunakan kata kunci # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8. Tapi ini tidak sepenuhnya benar karena, bahkan fungsi yang didefinisikan dengan # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8 dapat didefinisikan dalam satu baris tunggal. Namun umumnya, # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8 fungsi ditulis lebih dari 1 baris
- Umumnya digunakan saat suatu fungsi dibutuhkan sementara untuk waktu yang singkat, sering digunakan di dalam fungsi lain seperti # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 4 , # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 5 and # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 6.
- Menggunakan fungsi lambda, Anda dapat menentukan fungsi dan langsung memanggilnya di akhir definisi. Ini tidak dapat dilakukan dengan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8 .
Mari kita lihat lebih lanjut tentang penerapannya di python
4. Cara menggunakan fungsi lambda. Contoh Sederhana
Anda tidak perlu menentukan nama untuk fungsi seperti yang dibahas di atas tentang sintaks fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9. Mari kita coba mendefinisikan fungsi untuk menghitung kuadrat dari nilai yang diberikan
# calculate squares using lambda squares = lambda x: x*x print('Using lambda: ', squares(5)) Using lambda: 25Mari kita lihat juga bagaimana melakukan fungsi yang sama menggunakan kata kunci # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8, dan membandingkannya
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5))Keluaran
Using def: 25Lakukan hal yang sama dalam satu baris
# calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) Using def: 25Lihat bahwa saat menggunakan kata kunci # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _8, kami mengembalikan nilai tertentu Using def: 25 1. Dalam kasus fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9, ekspresi Using def: 25 1akan dikembalikan tanpa menulis pernyataan pengembalian eksplisit. Umumnya dalam penggunaan normal, tidak banyak perbedaan dalam penggunaan kata kunci # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8 dan # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9. Keduanya sebenarnya adalah fungsi. Mari kita lihat tipe mereka
# Types print(type(squares)) print(type(squares_def)) <class 'function'> <class 'function'>Keduanya milik kelas Using def: 25 _6
5. Secara internal, fungsi lambda dan def bekerja persis sama
Untuk memeriksa cara kerjanya secara internal, gunakan kata kunci Using def: 25 7. Using def: 25 7 kata kunci akan mengekspos versi bytecode python yang dapat dibaca yang memungkinkan pemeriksaan instruksi
# Bytecode instructions of lambda function import dis dis.dis(squares) 2 0 LOAD_FAST 0 (x) 2 LOAD_FAST 0 (x) 4 BINARY_MULTIPLY 6 RETURN_VALUEBytecode untuk fungsi `def` biasa
Using lambda: 25 0 2 0 LOAD_FAST 0 (x) 2 LOAD_FAST 0 (x) 4 BINARY_MULTIPLY 6 RETURN_VALUEPerhatikan bahwa proses yang dilakukan oleh kedua fungsi tersebut sama persis. Jadi, tidak ada perbedaan nyata dalam cara mereka mengeksekusi.
6. Fungsi Lambda dapat memiliki 0 atau 1 ekspresi, tidak lebih
- Tanpa ekspresi. tidak berisi ekspresi, akan memberikan keluaran yang sama untuk semua argumen
Keluaran
Program Ilmuwan Data Industri MLPlus
Apakah Anda ingin belajar Ilmu Data dari Ilmuwan Data berpengalaman?
Bangun karir ilmu data Anda dengan kualifikasi yang diakui secara global dan diakui industri. Selesaikan proyek dengan data perusahaan nyata dan jadilah Ilmuwan Data bersertifikat dalam waktu kurang dari 12 bulan.
Dapatkan Kursus Python Lengkap Gratis
Bangun karir ilmu data Anda dengan kualifikasi yang diakui secara global dan diakui industri. Dapatkan pola pikir, kepercayaan diri, dan keterampilan yang membuat Data Scientist begitu berharga
Using lambda: 25 _3- Ekspresi tunggal. Mereka dapat berisi salah satu ekspresi atau tanpa ekspresi. Kami tidak dapat menempatkan lebih dari satu ekspresi dalam fungsi lambda
7. Fungsi Lambda dapat Segera Dipanggil
Anda dapat mengimplementasikan fungsi lambda tanpa menggunakan nama variabel. Anda juga bisa langsung meneruskan nilai argumen ke fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9 tepat setelah mendefinisikannya menggunakan paranthesis. Ini tidak dapat dilakukan dengan menggunakan fungsi ________0______8
Using lambda: 25 _6Ini tidak bekerja dengan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8
Using lambda: 25 _78. Dimungkinkan untuk menulis fungsi tingkat tinggi menggunakan lambda
Fungsi lambda dapat mengambil fungsi lain sebagai argumen. Mari kita lihat contoh fungsi lambda bersarang, fungsi lambda di dalam fungsi lambda lainnya
Using lambda: 25 _8Lihat bahwa saya telah melewati fungsi lambda lain untuk menghitung kuadrat sebagai argumen ke variabel # Types print(type(squares)) print(type(squares_def)) 2 func
9. Fungsi Lambda menerima semua jenis argumen, sama seperti fungsi def biasa
Fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 mendukung semua jenis argumen seperti fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 8 normal. 1. Argumen Kata Kunci. # Types print(type(squares)) print(type(squares_def)) 5 adalah argumen yang didahului oleh pengidentifikasi (mis. g. name=) dalam pemanggilan fungsi. Argumen bernama. Contoh
Using lambda: 25 _9Daftar variabel Argumen. Contoh
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 0Daftar variabel argumen kata kunci. Contoh
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _12. Argumen posisi. # Types print(type(squares)) print(type(squares_def)) 6 adalah argumen yang bukan argumen kata kunci
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _210. Anda dapat menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 di Using def: 25 6
Using def: 25 6 fungsi digunakan untuk memfilter iterable yang diberikan (daftar seperti objek) menggunakan fungsi lain yang mendefinisikan logika pemfilteran. Fungsi lambda biasanya digunakan untuk mendefinisikan logika pemfilteran dan diteruskan sebagai argumen pertama dari Using def: 25 6. Iterable like a list object diteruskan sebagai argumen kedua ke fungsi # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 4
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _311. Anda dapat menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 di Using def: 25 8
Using def: 25 8 fungsi menerapkan fungsi yang diberikan untuk semua item dalam daftar dan mengembalikan hasilnya. Mirip dengan Using def: 25 _6, cukup berikan fungsi lambda dan daftar (atau iterable, seperti tuple) sebagai argumen
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _412. Anda dapat menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 di # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 0 juga
# calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) _0 fungsi melakukan operasi berulang atas pasangan elemen dalam daftar. Lewati fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 dan daftar sebagai argumen ke fungsi # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 0. Untuk menggunakan fungsi # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) _0, Anda perlu mengimpor # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 6 dari perpustakaan ________ 33 _______3
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 5Lihat bahwa fungsi # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 0 secara iteratif mengalikan elemen-elemen dalam daftar. # Bytecode instructions of lambda function import dis dis.dis(squares) _5 dan seterusnya
13. Cara menggunakan fungsi lambda untuk memanipulasi Dataframe
Anda juga dapat memanipulasi kolom kerangka data menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) 9. Ini adalah kandidat yang bagus untuk digunakan di dalam metode # Bytecode instructions of lambda function import dis dis.dis(squares) 7 dari kerangka data. Saya akan mencoba menambahkan baris baru di kerangka data di bagian ini sebagai contoh
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _6FirstSecondThirdForth012361456120
Saat digunakan dengan # Bytecode instructions of lambda function import dis dis.dis(squares) _8 ini menerapkan fungsi lambda ke setiap elemen kerangka data
# calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _7FirstSecondThirdForth014936116253614400
Kesimpulan
Semoga Anda mengerti apa itu fungsi lambda dan bagaimana Anda dapat menggunakannya dalam berbagai situasi. Cobalah latihan berikut untuk menguji pemahaman Anda