Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menggunakan Fungsi Lambda dalam Python

Cara Menggunakan Fungsi Lambda dalam Python

Patricia Arquette
Patricia Arquetteasal
2024-11-01 12:26:02582semak imbas

How to Use Lambda Functions in 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.

Prasyarat

Fungsi Lambda telah menjadi sebahagian daripada Python sejak versi 2.0, jadi anda memerlukan:

  • Versi Python minimum: 2.0.
  • Versi Python yang disyorkan: 3.10 atau lebih baru.

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

Sintaks dan Asas Fungsi Lambda untuk Python

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.

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.

Menggunakan Fungsi Lambda dengan Fungsi map().

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.

Menggunakan Fungsi Lambda dengan Fungsi penapis().

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)

Menggunakan Fungsi Lambda dengan Fungsi sorted().

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)

Menggunakan Fungsi Lambda dalam Pemahaman Senarai

Memandangkan padatnya, fungsi Lambda boleh dibenamkan dalam pemahaman senarai untuk pengiraan semasa.

Andaikan kita mempunyai senarai nombor. Kami mahu:

  • Lelaran pada keseluruhan senarai
  • Kira dan cetak dua kali ganda nilai awal.

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)

Kelebihan Menggunakan Fungsi Lambda

Memandangkan contoh yang telah kami terokai, mari kita jalani beberapa kelebihan menggunakan fungsi Lambda:

  • Ketepatan dan kebolehbacaan di mana logiknya mudah: Fungsi Lambda membolehkan kod ringkas, mengurangkan keperluan untuk definisi fungsi standard. Ini meningkatkan kebolehbacaan dalam kes di mana logik fungsi adalah mudah.
  • Keupayaan pengaturcaraan berfungsi dipertingkatkan: Fungsi Lambda sejajar dengan prinsip pengaturcaraan berfungsi, membolehkan binaan berfungsi dalam kod Python. Khususnya, ia memudahkan penggunaan fungsi tertib lebih tinggi dan aplikasi fungsi sebagai objek kelas pertama.
  • Bila dan mengapa memilih fungsi Lambda: Fungsi Lambda amat berfaedah apabila mentakrifkan fungsi "buang" pendek yang tidak perlu digunakan semula di tempat lain dalam kod. Jadi ia sesuai untuk kegunaan sebaris, seperti hujah kepada fungsi tertib lebih tinggi.

Had dan Kelemahan

Mari bincangkan secara ringkas beberapa batasan dan kelemahan fungsi Lambda dalam Python:

  • Cabaran kebolehbacaan dalam ungkapan kompleks: Walaupun fungsi Lambda ringkas, ia boleh menjadi sukar untuk dibaca dan difahami apabila digunakan untuk ungkapan kompleks. Ini boleh membawa kepada kod yang lebih sukar untuk diselenggara dan nyahpepijat.
  • Penghadan dalam pengendalian ralat dan penyahpepijatan: Memandangkan fungsi Lambda hanya boleh mengandungi satu ungkapan, ia tidak boleh memasukkan pernyataan, seperti blok try-except untuk pengendalian ralat. Pengehadan ini menjadikannya tidak sesuai untuk operasi kompleks yang memerlukan ciri ini.
  • Fungsi terhad: Memandangkan fungsi Lambda hanya boleh mengandungi satu ungkapan, ia kurang serba boleh berbanding fungsi standard. Sekatan reka bentuk sampingan ini mengehadkan penggunaannya kepada operasi dan transformasi mudah.

Amalan Terbaik untuk Menggunakan Fungsi Lambda

Sekarang kita telah mempertimbangkan beberapa kebaikan dan keburukan, mari kita tentukan beberapa amalan terbaik untuk menggunakan fungsi Lambda dengan berkesan:

  • Pastikan ia mudah: Untuk mengekalkan kebolehbacaan dan kesederhanaan, fungsi Lambda harus disimpan pendek dan terhad kepada operasi mudah. Fungsi dengan logik kompleks harus difaktorkan semula menjadi fungsi standard.
  • Elakkan penggunaan berlebihan: Walaupun fungsi Lambda sesuai untuk pelbagai situasi, penggunaan berlebihan boleh menyebabkan kod yang sukar dibaca dan diselenggara. Gunakannya dengan bijak dan pilih fungsi standard apabila kejelasan adalah asas.
  • Gabungkan fungsi Lambda dengan ciri Python lain: Seperti yang telah kita lihat, fungsi Lambda boleh digabungkan dengan berkesan dengan ciri Python lain, seperti pemahaman senarai dan fungsi tertib lebih tinggi. Ini boleh menghasilkan kod yang lebih ekspresif dan ringkas apabila digunakan dengan sewajarnya.

Teknik Lanjutan dengan Fungsi Lambda

Dalam kes tertentu, teknik fungsi Lambda yang lebih maju boleh membantu.

Mari kita lihat beberapa contoh.

Fungsi Lambda Bersarang

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

Integrasi dengan Perpustakaan Python untuk Kefungsian Lanjutan

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!

Membungkus

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn