Walaupun Python adalah bahasa pengaturcaraan berorientasikan objek, fungsi Lambda berguna apabila anda melakukan pelbagai jenis pengaturcaraan berfungsi.
Nota: Artikel ini akan menganggap anda sudah memahami pengaturcaraan Python dan cara menggunakan fungsi biasa. Ia juga diandaikan bahawa anda mempunyai Python 3.8 atau ke atas yang dipasang pada peranti anda.
Takeaways Key
Fungsi Python Lambda Python adalah tanpa nama, biasanya fungsi satu baris yang ditakrifkan menggunakan kata kunci 'lambda', yang sering digunakan dalam fungsi pesanan yang lebih tinggi seperti peta () dan penapis (). Mereka boleh mengendalikan pemahaman senarai dan berguna untuk rendering bersyarat dalam kerangka UI.
- Fungsi Lambda boleh mengambil beberapa argumen kedudukan, hujah kata kunci, atau kedua -duanya, diikuti oleh kolon dan hanya satu ungkapan. Mereka juga dilaksanakan seperti Ekspresi Fungsi Segera (IIFES) dalam JavaScript.
- Fungsi Lambda boleh digunakan dalam pemahaman senarai dan secara bertulis ekspresi ternary di Python, yang menghasilkan hasil berdasarkan keadaan tertentu. Mereka juga boleh digunakan dalam fungsi pesanan yang lebih tinggi, yang merupakan fungsi yang menerima fungsi lain sebagai argumen dan fungsi pulangan sebagai output.
- Walaupun python lambdas dapat mengurangkan jumlah baris kod, mereka harus digunakan dengan berhati -hati dan hanya apabila perlu. Kebolehbacaan Kod harus diprioritaskan atas kesimpulan. Mereka tidak disyorkan untuk digunakan apabila terdapat banyak ungkapan, kerana ia boleh membuat kod tidak boleh dibaca.
- menerangkan fungsi python lambda
Fungsi python lambda hanyalah fungsi tanpa nama. Ia juga boleh dipanggil fungsi
tanpa nama
. Fungsi python biasa ditakrifkan oleh kata kunci DEF. Fungsi Lambda di Python biasanya terdiri daripada kata kunci Lambda, sebilangan argumen, dan satu ungkapan.
Nota: Istilah Fungsi Lambda, Ekspresi Lambda, dan Lambda boleh digunakan secara bergantian, bergantung kepada bahasa pengaturcaraan atau pengaturcara.
Fungsi Lambda kebanyakannya digunakan sebagai satu-liners. Mereka digunakan dengan kerap dalam fungsi pesanan yang lebih tinggi seperti peta () dan penapis (). Ini kerana fungsi tanpa nama diluluskan sebagai hujah kepada fungsi pesanan yang lebih tinggi, yang bukan sahaja dilakukan dalam pengaturcaraan Python.
Lambdas sangat bagus apabila digunakan untuk bersyarat bersyarat dalam kerangka UI seperti TKInter, Wxpython, Kivy, dan lain -lain. Walaupun kerja -kerja kerangka Python GUI tidak diliputi dalam artikel ini, beberapa coretan kod menunjukkan penggunaan lambda yang berat berdasarkan interaksi pengguna.
perkara yang perlu difahami sebelum menyelidiki fungsi python lambda
Kerana Python adalah bahasa pengaturcaraan berorientasikan objek, semuanya adalah objek. Kelas python, contoh kelas, modul dan fungsi semuanya dikendalikan sebagai objek.
Objek fungsi boleh diberikan kepada pembolehubah.
Ia tidak biasa untuk memberikan pembolehubah kepada fungsi biasa dalam Python. Tingkah laku ini juga boleh digunakan untuk fungsi lambda. Ini kerana mereka berfungsi objek, walaupun mereka tidak bernama:
<span>def greet(name): </span> <span>return <span>f'Hello <span>{name}</span>'</span> </span> greetings <span>= greet </span>greetings<span>('Clint') </span><span>>>>> </span>Hello Clint
fungsi pesanan lebih tinggi seperti peta (), penapis (), dan mengurangkan ()
kemungkinan anda perlu menggunakan fungsi lambda dalam fungsi terbina dalam seperti penapis () dan peta (), dan juga dengan pengurangan ()-yang diimport dari modul functiols di python, kerana ia bukan fungsi terbina dalam. Secara lalai, fungsi pesanan lebih tinggi adalah fungsi yang menerima fungsi lain sebagai argumen.
Seperti yang dilihat dalam contoh kod di bawah, fungsi normal boleh digantikan dengan lambdas, diluluskan sebagai argumen ke dalam mana-mana fungsi pesanan yang lebih tinggi:
<span>#map function </span>names <span>= ['Clint', 'Lisa', 'Asake', 'Ada'] </span> greet_all <span>= list(map(greet, names)) </span><span>print(greet_all) </span><span>>>>> </span><span>['Hello Clint', 'Hello Lisa', 'Hello Asake', 'Hello Ada']</span>
<span>#filter function </span>numbers <span>= [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] </span><span>def multiples_of_three(x): </span> <span>return x % 3 == 0 </span> <span>print(list(filter(multiples_of_three, numbers))) </span><span>>>>> </span><span>[12, 15, 18]</span>
<span>#reduce function </span>numbers <span>= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] </span><span>def add_numbers(x, y): </span> <span>return x * y </span> <span>print(reduce(add_numbers, numbers)) </span><span>>>>> </span><span>55</span>
perbezaan antara pernyataan dan ungkapan
Titik kekeliruan yang sama di kalangan pemaju adalah membezakan antara pernyataan dan ungkapan dalam pengaturcaraan.
Pernyataan adalah apa -apa kod yang melakukan sesuatu atau melakukan tindakan - seperti jika atau keadaan semasa.
Ekspresi diperbuat daripada gabungan pembolehubah, nilai, dan pengendali dan menilai nilai baru.
Perbezaan ini penting kerana kita meneroka subjek fungsi Lambda di Python. Ungkapan seperti yang di bawah mengembalikan nilai:
square_of_three <span>= 3 ** 2 </span><span>print(square_of_three) </span><span>>>>> </span><span>9</span>
pernyataan kelihatan seperti ini:
<span>for i in range(len(numbers), 0, -1): </span> <span>if i % 2 == 1: </span> <span>print(i) </span> <span>else: </span> <span>print('even') </span><span>>>>> </span>even <span>9 even 7 even 5 even 3 even 1</span>
cara menggunakan fungsi python lambda
Panduan Gaya Python menyatakan bahawa setiap fungsi lambda mesti bermula dengan kata kunci Lambda (tidak seperti fungsi biasa, yang bermula dengan kata kunci DEF). Sintaks untuk fungsi lambda umumnya seperti ini:
<span>lambda arguments : expression</span>
Fungsi Lambda boleh mengambil beberapa argumen kedudukan, hujah kata kunci, atau kedua -duanya, diikuti oleh kolon dan hanya satu ungkapan. Tidak boleh ada lebih daripada satu ungkapan, kerana ia terhad secara sintaktik. Mari kita periksa contoh ungkapan lambda di bawah:
add_number <span>= lambda x, y : x + y </span><span>print(add_number(10, 4)) </span><span>>>>> </span><span>14</span>
Dari contoh di atas, ungkapan lambda diberikan kepada pembolehubah add_number. Panggilan fungsi dibuat dengan lulus hujah, yang menilai hingga 14.
mari kita ambil contoh lain di bawah:
<span>def greet(name): </span> <span>return <span>f'Hello <span>{name}</span>'</span> </span> greetings <span>= greet </span>greetings<span>('Clint') </span><span>>>>> </span>Hello Clint
Seperti yang dilihat di atas, fungsi lambda menilai kepada 728.0. Gabungan argumen posisional dan kata kunci digunakan dalam fungsi lambda python. Semasa menggunakan hujah -hujah kedudukan, kita tidak dapat mengubah pesanan yang digariskan dalam definisi fungsi. Walau bagaimanapun, kita boleh meletakkan hujah kata kunci di mana -mana kedudukan hanya selepas hujah -hujah kedudukan.
Fungsi Lambda sentiasa dilaksanakan sama seperti Ekspresi Fungsi Segera (IIFES) dalam JavaScript. Ini kebanyakannya digunakan dengan penterjemah python, seperti yang ditunjukkan dalam contoh berikut:
<span>#map function </span>names <span>= ['Clint', 'Lisa', 'Asake', 'Ada'] </span> greet_all <span>= list(map(greet, names)) </span><span>print(greet_all) </span><span>>>>> </span><span>['Hello Clint', 'Hello Lisa', 'Hello Asake', 'Hello Ada']</span>
Objek fungsi Lambda dibalut dalam kurungan, dan satu lagi kurungan berikutnya dengan argumen yang diluluskan. Sebagai IIFE, ungkapan dinilai dan fungsi mengembalikan nilai yang diberikan kepada pembolehubah.
Fungsi Python Lambda juga boleh dilaksanakan dalam pemahaman senarai. Pemahaman senarai sentiasa mempunyai ungkapan output, yang digantikan oleh fungsi lambda. Berikut adalah beberapa contoh:
<span>#filter function </span>numbers <span>= [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] </span><span>def multiples_of_three(x): </span> <span>return x % 3 == 0 </span> <span>print(list(filter(multiples_of_three, numbers))) </span><span>>>>> </span><span>[12, 15, 18]</span>
<span>#reduce function </span>numbers <span>= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] </span><span>def add_numbers(x, y): </span> <span>return x * y </span> <span>print(reduce(add_numbers, numbers)) </span><span>>>>> </span><span>55</span>
Fungsi Lambda boleh digunakan semasa menulis ekspresi ternary di Python. Ekspresi ternary menghasilkan hasil berdasarkan keadaan tertentu. Semak contoh di bawah:
square_of_three <span>= 3 ** 2 </span><span>print(square_of_three) </span><span>>>>> </span><span>9</span>
<span>for i in range(len(numbers), 0, -1): </span> <span>if i % 2 == 1: </span> <span>print(i) </span> <span>else: </span> <span>print('even') </span><span>>>>> </span>even <span>9 even 7 even 5 even 3 even 1</span>
fungsi lambda dalam fungsi pesanan tinggi
Konsep fungsi pesanan tinggi adalah popular di Python, sama seperti dalam bahasa lain. Mereka adalah fungsi yang menerima fungsi lain sebagai hujah dan juga mengembalikan fungsi sebagai output.
Dalam Python, fungsi pesanan yang lebih tinggi mengambil dua argumen: fungsi, dan ia boleh dimakan. Hujah fungsi digunakan untuk setiap item dalam objek yang boleh dimakan. Oleh kerana kita boleh lulus fungsi sebagai hujah kepada fungsi pesanan yang lebih tinggi, kita sama-sama boleh lulus dalam fungsi lambda.
Berikut adalah beberapa contoh fungsi lambda yang digunakan dengan fungsi peta ():
<span>lambda arguments : expression</span>
add_number <span>= lambda x, y : x + y </span><span>print(add_number(10, 4)) </span><span>>>>> </span><span>14</span>
Berikut adalah beberapa fungsi lambda yang digunakan dengan fungsi penapis ():
discounted_price <span>= lambda price, discount = 0.1, vat = 0.02 : price * (1 - discount) * (1 + vat) </span> <span>print(discounted_price(1000, vat=0.04, discount=0.3)) </span><span>>>>> </span><span>728.0</span>
<span>print((lambda x, y: x - y)(45, 18)) </span><span>>>>> </span><span>27</span>
Berikut adalah beberapa fungsi lambda yang digunakan dengan fungsi mengurangkan ():
my_list <span>= [(lambda x: x * 2)(x) for x in range(10) if x % 2 == 0] </span><span>print(my_list) </span><span>>>>> </span><span>[0, 4, 8, 12, 16]</span>
value <span>= [(lambda x: x % 2 and 'odd' or 'even')(x) for x in my_list] </span><span>print(value) </span><span>>>>> </span><span>['even', 'even', 'even', 'even', 'even']</span>
Kesimpulan
Walaupun python lambdas dapat mengurangkan jumlah baris kod yang anda tulis, mereka harus digunakan dengan berhati -hati dan hanya apabila perlu. Kebolehbacaan kod anda harus diprioritaskan atas kesimpulan. Untuk lebih banyak kod yang boleh dibaca, selalu gunakan fungsi normal di mana sesuai dengan fungsi Lambda, seperti yang disyorkan oleh Panduan Gaya Python.
Lambdas boleh menjadi sangat berguna dengan ekspresi ternary python, tetapi sekali lagi, cuba untuk tidak mengorbankan kebolehbacaan. Fungsi Lambda benar-benar datang ke dalam mereka sendiri apabila fungsi pesanan lebih tinggi digunakan.
Secara ringkas: Kandungan yang berkaitan: Dalam Python, fungsi lambda adalah fungsi tanpa nama, kecil, dan inline yang ditakrifkan menggunakan kata kunci Lambda. Ia sering digunakan untuk operasi jangka pendek di mana definisi fungsi penuh tidak perlu.
Soalan Lazim Mengenai Python Lambdas
Apakah fungsi lambda dalam Python? Fungsi Lambda tidak dikenali dan biasanya digunakan untuk operasi pendek, satu kali. Fungsi tetap ditakrifkan menggunakan kata kunci DEF dan boleh mempunyai pelbagai ungkapan dan pernyataan. Fungsi lambda lambda sesuai untuk operasi pendek, mudah, terutamanya apabila anda memerlukan fungsi untuk tempoh yang singkat dan tidak mahu secara rasmi menentukannya menggunakan def. fungsi?
Fungsi Lambda terhad kerana mereka hanya boleh mengandungi satu ungkapan. Mereka tidak boleh memasukkan pernyataan atau kod multiline. Bolehkah saya menggunakan fungsi lambda untuk operasi kompleks? Walaupun fungsi Lambda direka untuk kesederhanaan, mereka boleh melakukan operasi kompleks dalam kekangan ungkapan tunggal. Walau bagaimanapun, untuk logik yang lebih lanjutan dan kompleks, lebih baik menggunakan fungsi biasa.
Atas ialah kandungan terperinci Panduan untuk fungsi python lambda, dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Memilih Python atau C bergantung kepada keperluan projek: 1) Jika anda memerlukan pembangunan pesat, pemprosesan data dan reka bentuk prototaip, pilih Python; 2) Jika anda memerlukan prestasi tinggi, latensi rendah dan kawalan perkakasan yang rapat, pilih C.

Dengan melabur 2 jam pembelajaran python setiap hari, anda dapat meningkatkan kemahiran pengaturcaraan anda dengan berkesan. 1. Ketahui Pengetahuan Baru: Baca dokumen atau tutorial menonton. 2. Amalan: Tulis kod dan latihan lengkap. 3. Kajian: Menyatukan kandungan yang telah anda pelajari. 4. Amalan Projek: Sapukan apa yang telah anda pelajari dalam projek sebenar. Pelan pembelajaran berstruktur seperti ini dapat membantu anda menguasai Python secara sistematik dan mencapai matlamat kerjaya.

Kaedah untuk belajar python dengan cekap dalam masa dua jam termasuk: 1. Semak pengetahuan asas dan pastikan anda sudah biasa dengan pemasangan Python dan sintaks asas; 2. Memahami konsep teras python, seperti pembolehubah, senarai, fungsi, dan lain -lain; 3. Menguasai penggunaan asas dan lanjutan dengan menggunakan contoh; 4. Belajar kesilapan biasa dan teknik debugging; 5. Memohon pengoptimuman prestasi dan amalan terbaik, seperti menggunakan komprehensif senarai dan mengikuti panduan gaya PEP8.

Python sesuai untuk pemula dan sains data, dan C sesuai untuk pengaturcaraan sistem dan pembangunan permainan. 1. Python adalah mudah dan mudah digunakan, sesuai untuk sains data dan pembangunan web. 2.C menyediakan prestasi dan kawalan yang tinggi, sesuai untuk pembangunan permainan dan pengaturcaraan sistem. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Python lebih sesuai untuk sains data dan perkembangan pesat, manakala C lebih sesuai untuk prestasi tinggi dan pengaturcaraan sistem. 1. Sintaks Python adalah ringkas dan mudah dipelajari, sesuai untuk pemprosesan data dan pengkomputeran saintifik. 2.C mempunyai sintaks kompleks tetapi prestasi yang sangat baik dan sering digunakan dalam pembangunan permainan dan pengaturcaraan sistem.

Adalah mungkin untuk melabur dua jam sehari untuk belajar Python. 1. Belajar Pengetahuan Baru: Ketahui konsep baru dalam satu jam, seperti senarai dan kamus. 2. Amalan dan Amalan: Gunakan satu jam untuk melakukan latihan pengaturcaraan, seperti menulis program kecil. Melalui perancangan dan ketekunan yang munasabah, anda boleh menguasai konsep teras Python dalam masa yang singkat.

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),