JetBrains 全新資料科學 IDE DataSpell 正式釋出:支援 PyCharm 的智慧 Python 和 R 編碼輔助
阿新 • • 發佈:2021-12-16
匿名函式
lambda關鍵字在Python表示式內部建立匿名函式
然後,Python簡單的語法限制了lambda函式的定義體只能使用純表示式。lambda函式的定義體中不能賦值,也不能使用while和try等Python語句
在引數列表中最適合使用匿名函式
# 使用lambda表示式反轉拼寫,然後依次給單詞列表排序
fruits=['strawberry','fig','apple','cherry','respberry','banana']
sorted(fruits,key=lambda word:word[::-1])
['banana', 'apple', 'fig', 'respberry', 'strawberry', 'cherry']
除了作為引數傳給高階函式之外,Python很少使用匿名函式。由於語法上的限制,複雜的lambda表示式要麼難以閱讀,要麼無法寫出
lambda表示式重構祕籍
- 編寫註釋,說明lambda表示式的作用
- 研究一會兒註釋,並找出一個名稱來概括註釋
- 把lambda表示式轉換成def語句,使用那個名稱來定義函式
- 刪除註釋
lambda句法只是語法糖:與def語句一樣,lambda表示式會建立函式物件。這是Python中幾種可呼叫物件的一種