Mengapa ungkapan lambda Python tidak boleh mengandungi pernyataan?

WBOY
Lepaskan: 2023-08-19 08:14:14
ke hadapan
1577 orang telah melayarinya

Mengapa ungkapan lambda Python tidak boleh mengandungi pernyataan?

Ya, ungkapan Python Lambda tidak boleh mengandungi pernyataan. Sebelum kita menyelidiki sebabnya, mari kita fahami apa itu Lambda, ungkapan dan pernyataannya.

Ekspresi Lambda membenarkan mentakrifkan fungsi tanpa nama. Fungsi Lambda ialah fungsi tanpa nama tanpa nama. Mari lihat sintaks −

lambda arguments: expressions
Salin selepas log masuk

Kata kunci lambda mentakrifkan fungsi lambda. Ungkapan lambda mengandungi satu atau lebih parameter, tetapi ia hanya boleh mempunyai satu ungkapan.

Contoh lambda

Mari kita lihat contoh −

myStr = "Thisisit!"
(lambda myStr : print(myStr))(myStr)
Salin selepas log masuk

Output

Thisisit!
Salin selepas log masuk

Gunakan Lambda untuk mengisih senarai berdasarkan nilai senarai lain

Dalam contoh ini kita akan mengisih senarai berdasarkan nilai senarai lain iaitu senarai kedua akan diisih mengikut indeksnya dalam susunan yang disusun -

# Two Lists
list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
list2 = [2, 5, 1, 4, 3]

print("List1 = \n",list1)
print("List2 (indexes) = \n",list2)

# Sorting the List1 based on List2
res = [val for (_, val) in sorted(zip(list2, list1), key=lambda x: x[0])]
print("\nSorted List = ",res)
Salin selepas log masuk

Output

List1 = 
 ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
List2 (indexes) = 
 [2, 5, 1, 4, 3]

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Salin selepas log masuk

Ekspresi Lambda tidak boleh mengandungi pernyataan

Kami melihat dua contoh penggunaan ungkapan Lambda di atas. Ungkapan Lambda Python tidak boleh mengandungi pernyataan kerana rangka kerja sintaks Python tidak dapat mengendalikan pernyataan yang bersarang dalam ungkapan.

Dalam Python, fungsi sudah pun menjadi objek kelas pertama dan boleh diisytiharkan dalam skop tempatan. Jadi satu-satunya kelebihan menggunakan lambda dan bukannya mentakrifkan fungsi secara tempatan ialah anda tidak perlu memberikan nama fungsi, iaitu fungsi tanpa nama, tetapi ia hanya pembolehubah tempatan yang ditetapkan kepada objek fungsi!

Atas ialah kandungan terperinci Mengapa ungkapan lambda Python tidak boleh mengandungi pernyataan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!