匿名函式(Python)
lambda表示式
Python中使用lambda表示式構建匿名函式。
- 語法 (lambda 形參:表示式)(實參)表示式不能有等號 且表示式只能寫一句。
# 一.
def add(x, y):
return x + y
# 二.
add = lambda x, y:x + y
# 三.
[lambda x, y:x + y][0](1, 2)
以上三種等價
注意形參可以不寫但表示式必須的寫!!
- 引數列表不需要小括號,無參就不要寫引數
- 冒號用來分割引數列表和表示式部分
- 不需要使用return。表示式的值,就是匿名函式的返回值, 表示式中不能出現等號
- lambda表示式(匿名函式)只能寫在一行上,也稱為單行函式。
匿名函式往往用在為高階函式傳參時,使用lambda表示式,往往能簡化程式碼
# 以sorted函式變一下
list_ = [1, 4, 7, 6]
lis = sorted(list_, key = lambda x:ord(x) if isinstance(x, str) else x)
print(lis)
# 等價於
def lis_(x):
if isinstance(x, str):
return ord(x)
return x
lis__ = sorted(list_, key = lis_)
print(lis__)
結果:
[1, 4, 6, 7]
[1, 4, 6, 7]
lambda其他使用方法
[x for x in (lambda *args:map(lambda x: x + 1, args))(*range(5))]
#[1, 2, 3, 4, 5]
[i for i in (lambda *args : map(lambda x: x+1, args))(*range(10))]
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(lambda *args : [i for i in args])(*range(10))
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
函式和函式間的呼叫
def fn(x):
return x + 1
foo = lambda args : fn(args)
foo(2)
# 3
相關文章
- Python匿名函式Python函式
- 1.5.7 Python匿名函式Python函式
- Python函式與lambda 表示式(匿名函式)Python函式
- Python 返回函式+匿名函式Python函式
- python匿名函式的好處Python函式
- Python匿名函式快速入門Python函式
- 初學 Python(十三)——匿名函式Python函式
- Python中的匿名函式-lambdaPython函式
- 深入理解 函式、匿名函式、自執行匿名函式函式
- Python技法3:匿名函式、回撥函式和高階函式Python函式
- PHP匿名函式PHP函式
- Ruby 匿名函式函式
- Golang匿名函式Golang函式
- JavaScript 匿名函式JavaScript函式
- Go 匿名函式Go函式
- JavaScript匿名函式JavaScript函式
- python函式程式設計 返回函式 匿名函式 裝飾器 偏函式Python函式程式設計
- PHP 匿名函式初探PHP函式
- 閉包函式(匿名函式)的理解函式
- 第 8 節:函式-匿名函式、遞迴函式函式遞迴
- Python函數語言程式設計-高階函式、匿名函式、裝飾器、偏函式Python函數程式設計函式
- 兄弟連go教程(14)函式 - 匿名函式Go函式
- PHP 核心特性 - 匿名函式PHP函式
- 裝飾器,匿名函式函式
- js中的匿名函式JS函式
- Js匿名函式小指南JS函式
- JavaScript 匿名函式 閉包JavaScript函式
- 初識Lambda表示式(匿名函式)函式
- 好程式設計師Python教程系列遞迴函式與匿名函式呼叫程式設計師Python遞迴函式
- (011)我們一起學Python;匿名函式,遞迴函式Python函式遞迴
- GO 的匿名函式使用注意Go函式
- 匿名函式有加速的效果??函式
- js 匿名自執行函式JS函式
- 好程式設計師Python培訓分享Python的遞迴函式與匿名函式呼叫程式設計師Python遞迴函式
- python極簡教程05:生成器和匿名函式Python函式
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- 從settTimeout到匿名函式、箭頭函式之() => {}函式
- 塊級作用域替代“匿名立即執行函式表示式(匿名IIFE)”函式