為什麼Python的lambda表達式不能包含語句?

WBOY
發布: 2023-08-19 08:14:14
轉載
1591 人瀏覽過

為什麼Python的lambda表達式不能包含語句?

是的,Python Lambda表達式不能包含語句。在深入探討原因之前,讓我們先了解什麼是Lambda,它的表達式和語句。

Lambda表達式允許定義匿名函數。 Lambda函數是一個沒有名稱的匿名函數。讓我們來看看語法−

lambda arguments: expressions
登入後複製

關鍵字 lambda 定義了一個 lambda 函數。一個 lambda 表達式包含一個或多個參數,但它只能有一個表達式。

Lambda範例

讓我們來看一個例子 −

myStr = "Thisisit!"
(lambda myStr : print(myStr))(myStr)
登入後複製

輸出

Thisisit!
登入後複製

使用Lambda根據另一個清單的值對清單進行排序

在這個範例中,我們將根據另一個清單的值對清單進行排序,即第二個清單將按照它們在排序後的順序中的索引進行排序 -

# 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)
登入後複製

輸出

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

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
登入後複製

Lambda表達式不能包含語句

我們在上面看到了兩個使用Lambda表達式的範例。 Python的Lambda表達式不能包含語句,因為Python的語法框架無法處理嵌套在表達式中的語句。

在Python中,函數已經是一等對象,並且可以在局部作用域中宣告。因此,使用lambda而不是在局部定義函數的唯一優點是你不需要為函數取一個名字,即匿名函數,但這只是一個局部變量,被賦予了函數物件!

以上是為什麼Python的lambda表達式不能包含語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!