Rumah > Artikel > pembangunan bahagian belakang > Cara Menggunakan Fungsi Lambda dalam Python
Fungsi Lambda dalam Python ialah cara yang berkuasa untuk mencipta fungsi kecil tanpa nama dengan cepat. Fungsi ini biasanya digunakan untuk operasi ringkas dan ringkas di mana overhed definisi fungsi penuh tidak diperlukan.
Walaupun fungsi tradisional ditakrifkan menggunakan kata kunci def, fungsi Lambda ditakrifkan menggunakan kata kunci lambda dan disepadukan terus ke dalam baris kod. Khususnya, ia sering digunakan sebagai hujah untuk fungsi terbina dalam. Ia membolehkan pembangun menulis kod yang bersih dan boleh dibaca dengan menghapuskan keperluan untuk definisi fungsi sementara.
Dalam artikel ini, kami akan membincangkan perkara yang dilakukan oleh fungsi Lambda dan sintaksnya. Kami juga akan memberikan beberapa contoh dan amalan terbaik untuk menggunakannya serta membincangkan kebaikan dan keburukan mereka.
Fungsi Lambda telah menjadi sebahagian daripada Python sejak versi 2.0, jadi anda memerlukan:
Dalam tutorial ini, kita akan melihat cara menggunakan fungsi Lambda dengan pustaka Pandas: pustaka analisis dan manipulasi data sumber terbuka yang pantas, berkuasa, fleksibel dan mudah digunakan. Jika anda belum memasangnya, jalankan yang berikut:
pip install pandas
Pertama, mari kita tentukan sintaks yang mesti digunakan oleh pembangun untuk mencipta fungsi Lambda.
Fungsi Lambda ditakrifkan menggunakan kata kunci lambda, diikuti dengan satu atau lebih argumen dan ungkapan:
lambda arguments: expression
Mari bayangkan kita ingin mencipta fungsi Lambda yang menjumlahkan dua nombor:
add = lambda x, y: x + y
Jalankan yang berikut:
result = add(3, 5) print(result)
Ini menghasilkan:
8
Kami telah mencipta fungsi tanpa nama yang mengambil dua hujah, x dan y. Tidak seperti fungsi tradisional, fungsi Lambda tidak mempunyai nama: itulah sebabnya kami mengatakan ia "tanpa nama."
Selain itu, kami tidak menggunakan pernyataan pulangan, seperti yang kami lakukan dalam fungsi Python biasa. Jadi kita boleh menggunakan fungsi Lambda sesuka hati: ia boleh dicetak (seperti yang kita lakukan dalam kes ini), disimpan dalam pembolehubah, dsb.
Sekarang mari kita lihat beberapa kes penggunaan biasa untuk fungsi Lambda.
Fungsi Lambda digunakan terutamanya dalam situasi di mana kita memerlukan fungsi ringkas buat sementara waktu. Khususnya, ia biasanya digunakan sebagai hujah untuk fungsi tertib lebih tinggi.
Mari kita lihat beberapa contoh praktikal.
map() ialah fungsi terbina dalam yang menggunakan fungsi yang diberikan pada setiap item yang boleh lelar dan mengembalikan objek peta dengan hasilnya.
Sebagai contoh, katakan kita ingin mengira punca kuasa dua setiap nombor dalam senarai. Kita boleh menggunakan fungsi Lambda seperti:
pip install pandas
Ini menghasilkan:
lambda arguments: expression
Kami kini mempunyai senarai yang mengandungi punca kuasa dua nombor awal.
Seperti yang kita lihat, ini sangat memudahkan proses untuk menggunakan fungsi dengan cepat yang tidak perlu digunakan semula kemudian.
Sekarang, katakan kita mempunyai senarai nombor dan mahu menapis nombor genap.
Kita boleh menggunakan fungsi Lambda seperti berikut:
add = lambda x, y: x + y
Ini menghasilkan:
result = add(3, 5) print(result)
Fungsi sorted() dalam Python mengembalikan senarai diisih baharu daripada unsur mana-mana lelaran. Menggunakan fungsi Lambda, kami boleh menggunakan kriteria penapisan khusus pada senarai ini.
Sebagai contoh, katakan kita mempunyai senarai titik dalam dua dimensi: (x,y). Kami ingin membuat senarai yang menyusun nilai y secara berperingkat.
Kita boleh melakukannya seperti itu:
8
Dan kami mendapat:
# Define the list of numbers numbers = [1, 2, 3, 4] # Calculate square values and print results squared = list(map(lambda x: x ** 2, numbers)) print(squared)
Memandangkan padatnya, fungsi Lambda boleh dibenamkan dalam pemahaman senarai untuk pengiraan semasa.
Andaikan kita mempunyai senarai nombor. Kami mahu:
Begini cara kami boleh melakukannya:
[1, 4, 9, 16]
Dan kami memperoleh:
# Create a list of numbers numbers = [1, 2, 3, 4] # Filter for even numbers and print results even = list(filter(lambda x: x % 2 == 0, numbers)) print(even)
Memandangkan contoh yang telah kami terokai, mari kita jalani beberapa kelebihan menggunakan fungsi Lambda:
Mari bincangkan secara ringkas beberapa batasan dan kelemahan fungsi Lambda dalam Python:
Sekarang kita telah mempertimbangkan beberapa kebaikan dan keburukan, mari kita tentukan beberapa amalan terbaik untuk menggunakan fungsi Lambda dengan berkesan:
Dalam kes tertentu, teknik fungsi Lambda yang lebih maju boleh membantu.
Mari kita lihat beberapa contoh.
Fungsi Lambda boleh bersarang untuk operasi yang kompleks.
Teknik ini berguna dalam senario di mana anda perlu mempunyai berbilang transformasi kecil dalam urutan.
Sebagai contoh, katakan anda ingin mencipta fungsi yang mengira punca kuasa dua nombor dan kemudian menambah 1. Begini cara anda boleh menggunakan fungsi Lambda untuk berbuat demikian:
pip install pandas
Anda mendapat:
lambda arguments: expression
Banyak perpustakaan Python memanfaatkan fungsi Lambda untuk memudahkan tugas pemprosesan data yang kompleks.
Sebagai contoh, fungsi Lambda boleh digunakan dengan Panda dan NumPy untuk memudahkan manipulasi dan transformasi data.
Andaikan kita mempunyai bingkai data dengan dua lajur. Kami ingin mencipta satu lagi lajur yang merupakan jumlah dua yang lain. Dalam kes ini, kita boleh menggunakan fungsi Lambda seperti berikut:
add = lambda x, y: x + y
Dan kami mendapat:
pip install pandas
Itu sahaja untuk lawatan henti-henti kami tentang fungsi Lambda dalam Python!
Dalam artikel ini, kami telah melihat cara menggunakan fungsi Lambda dalam Python, meneroka kebaikan dan keburukan mereka, beberapa amalan terbaik dan menyentuh beberapa kes penggunaan lanjutan.
Selamat mengekod!
P.S. Jika anda ingin membaca siaran Python sebaik sahaja ia keluar dari akhbar, langgan surat berita Python Wizardry kami dan jangan sekali-kali terlepas satu pun siaran!
Atas ialah kandungan terperinci Cara Menggunakan Fungsi Lambda dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!