为什么Pythonlambda有用?我在努力找出Python Lambdas。Lambda是那些在现实生活中应该被遗忘的“有趣”语言项目之一吗?我相信,在某些边缘情况下,它可能是需要的,但考虑到它的模糊性,它的潜力在未来的版本中被重新定义(我基于对它的各种定义所作的假设)和编码清晰度的降低-应该避免吗?这让我想起了C类型的溢出(缓冲区溢出)-指向顶部变量和重载以设置其他字段值。这感觉有点像一个技术人员的表演,但维护编码器噩梦。
3 回答
杨魅力
TA贡献1811条经验 获得超6个赞
lambda x: x**2 + 2*x - 5
mult3 = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])
mult3
[3, 6, 9]
def filterfunc(x): return x % 3 == 0mult3 = filter(filterfunc, [1, 2, 3, 4, 5, 6, 7, 8, 9])
mult3 = [x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9] if x % 3 == 0]
range(3,10,3)
从另一个函数返回函数 >>> def transform(n):... return lambda x: x + n...>>> f = transform(3)>>> f(4)7
这通常用于创建函数包装器,例如Python的装饰器。 将可迭代序列的元素与 reduce()
>>> reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])'1, 2, 3, 4, 5, 6, 7, 8, 9'
按备用键排序 >>> sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))[5, 4, 6, 3, 7, 2, 8, 1, 9]
长风秋雁
TA贡献1757条经验 获得超7个赞
lambda
function
lambda
function
>>> f = lambda x: x + 1>>> f(3)4
x
R
> f = function(x) { x + 1 }> f(3)4
添加回答
举报
0/150
提交
取消