为什么Pythonlambda有用?

为什么Pythonlambda有用?

我在努力找出Python Lambdas。Lambda是那些在现实生活中应该被遗忘的“有趣”语言项目之一吗?

我相信,在某些边缘情况下,它可能是需要的,但考虑到它的模糊性,它的潜力在未来的版本中被重新定义(我基于对它的各种定义所作的假设)和编码清晰度的降低-应该避免吗?

这让我想起了C类型的溢出(缓冲区溢出)-指向顶部变量和重载以设置其他字段值。这感觉有点像一个技术人员的表演,但维护编码器噩梦。


qq_花开花谢_0
浏览 746回答 3
3回答

杨魅力

你是说Lambda函数?喜欢lambda x: x**2 + 2*x - 5这些东西其实很有用。Python支持一种称为功能程序设计你可以把函数传递给其他函数来做事情。例子:mult3 = filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])集mult3到[3, 6, 9],原始列表中的元素是3的倍数。这比这更短(而且可以说更清楚)。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)),但是还有许多其他更复杂的用例,您不能使用列表理解,而lambda函数可能是写出东西的最短方法。从另一个函数返回函数>>> 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]我经常使用lambda函数。我花了一段时间才适应他们,但最终我明白了他们是语言中非常有价值的一部分。

长风秋雁

lambda只是一种奇特的说法function..除了它的名字之外,它没有什么晦涩、可怕或神秘的地方。当您阅读以下一行时,请替换lambda通过function在你心中:>>> f = lambda x: x + 1>>> f(3)4它只定义了x..其他一些语言,比如R,明文规定:> f = function(x) { x + 1 }> f(3)4你看?这是编程中最自然的事情之一。

HUX布斯

两行摘要:闭包*非常有用。学习它们,使用它们,爱它们。Python的lambda关键词:不必要,偶尔有用。如果你发现自己对它做了一些非常复杂的事情,就把它放下,定义一个真正的函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python