难以理解lambda函数

7 投票
2 回答
625 浏览
提问于 2025-04-17 19:53

这个函数到底在做什么:

lambda x: 10 if x == 6 else 1 

我知道一些lambda函数的作用,但我不习惯看到它们这样写。我对任何形式的代码都很陌生。

2 个回答

2

Python是一种很棒的编程语言,它有很多实用的功能,特别是可以用来处理函数的特性。你提到的例子其实可以用下面的方式来表示:

if x == 6:
    return 10
else:
    return 1

lambda函数特别有用,当你需要把一个简单的函数作为参数传递给代码中的另一个函数时,就可以用到它。

14
some_function = lambda x: 10 if x == 6 else 1

这是一个简单的写法,实际上等于:

def some_function(x):
    return 10 if x == 6 else 1

这意味着如果 x == 6 这个条件成立,就会返回10;如果不成立,就返回1。

我个人觉得在除了最简单的情况外,使用 def 这种写法更好,因为它可以写多行的函数,能更清楚地看到调用这个函数时需要的开销,也让分析函数的闭包变得简单。此外,这样也能让新手程序员接触到其他更复杂的代码对象(比如类),这些在运行时也可以很容易地构建出来。

撰写回答