cari
Rumahpembangunan bahagian belakangTutorial PythonPanduan untuk fungsi python lambda, dengan contoh

Panduan untuk fungsi python lambda, dengan contoh

Artikel ini memperkenalkan fungsi python lambda dan bagaimana menulis dan menggunakannya.

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
Dalam Python, fungsi boleh mengambil satu atau lebih argumen kata kunci atau kata kunci, senarai argumen yang berubah -ubah, senarai pembolehubah argumen kata kunci, dan sebagainya. Mereka boleh diluluskan ke dalam fungsi pesanan yang lebih tinggi dan dikembalikan sebagai output. Fungsi tetap boleh mempunyai beberapa ungkapan dan pelbagai kenyataan. Mereka juga sentiasa mempunyai nama.

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.

Fungsi Lambda juga sangat berguna untuk mengendalikan pemahaman senarai di Python - dengan pelbagai pilihan untuk menggunakan ekspresi python lambda untuk tujuan ini.

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:

  • python lambdas baik untuk menulis fungsi satu liner.
  • mereka juga digunakan untuk IIFES (segera dipanggil ekspresi fungsi).
  • Lambdas tidak boleh digunakan apabila terdapat banyak ungkapan, kerana ia menjadikan kod tidak boleh dibaca.
  • Python adalah bahasa pengaturcaraan berorientasikan objek, tetapi lambdas adalah cara yang baik untuk meneroka pengaturcaraan berfungsi di Python.

Kandungan yang berkaitan:

  • Memahami penghias python, dengan contoh
  • kursus: Belajar asas pengaturcaraan dengan python
  • Trend dalam Python: Apa yang Panas dalam Bahasa Hangat Hari Ini
  • 5 masalah biasa yang dihadapi oleh pemula python
  • Bagaimana empat pengaturcara mendapat pekerjaan python pertama mereka

Soalan Lazim Mengenai Python Lambdas

Apakah fungsi lambda dalam Python?

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.

Sintaks untuk fungsi lambda adalah: argumen lambda: ungkapan. Sebagai contoh: Lambda X: X 1 mencipta fungsi lambda yang menambah 1 kepada hujahnya.

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!

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
Python vs C: Memahami perbezaan utamaPython vs C: Memahami perbezaan utamaApr 21, 2025 am 12:18 AM

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.

Python vs C: Bahasa mana yang harus dipilih untuk projek anda?Python vs C: Bahasa mana yang harus dipilih untuk projek anda?Apr 21, 2025 am 12:17 AM

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.

Mencapai matlamat python anda: kekuatan 2 jam sehariMencapai matlamat python anda: kekuatan 2 jam sehariApr 20, 2025 am 12:21 AM

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.

Memaksimumkan 2 Jam: Strategi Pembelajaran Python BerkesanMemaksimumkan 2 Jam: Strategi Pembelajaran Python BerkesanApr 20, 2025 am 12:20 AM

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.

Memilih antara python dan c: bahasa yang sesuai untuk andaMemilih antara python dan c: bahasa yang sesuai untuk andaApr 20, 2025 am 12:20 AM

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 vs C: Analisis perbandingan bahasa pengaturcaraanPython vs C: Analisis perbandingan bahasa pengaturcaraanApr 20, 2025 am 12:14 AM

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.

2 jam sehari: potensi pembelajaran python2 jam sehari: potensi pembelajaran pythonApr 20, 2025 am 12:14 AM

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 vs C: Lengkung pembelajaran dan kemudahan penggunaanPython vs C: Lengkung pembelajaran dan kemudahan penggunaanApr 19, 2025 am 12:20 AM

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.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

DVWA

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

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

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

mPDF

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),