lambda xxx: foo(xxx)- 和刚才完全一样foo吗?用于建筑如
map(lambda xxx: foo(xxx), my_things)
我看不出任何区别:
def plus(a):
return a+1
for i in map(plus, [1,2,3]):
print(i)
for i in map(lambda a: plus(a), [1,2,3]):
print(i)
Run Code Online (Sandbox Code Playgroud)
打印相同
2
3
4
Run Code Online (Sandbox Code Playgroud)
不,lambda x: foo(x)不等于foo(x)而是foo。的ETA是减少的转化lambda x: foo(x)到foo。
map(lambda a: plus(a), [1,2,3])并且map(plus, [1,2,3])通过替换相关lambda a: plus(a)与plusETA的还原规则的应用。