Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa ungkapan lambda Python tidak boleh mengandungi pernyataan?

Mengapa ungkapan lambda Python tidak boleh mengandungi pernyataan?

WBOY
WBOYke hadapan
2023-08-19 08:14:141578semak imbas

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

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)

Output

Thisisit!

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)

Output

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

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam