我可以在这里使用lambda表达式吗?

时间:2017-01-29 22:44:52

标签: python lambda

在这个示例程序中,我将命名为0到6天,其中第0天是星期日,第6天是星期六。我想知道我是否可以在这里使用lambda表达式来开始日期和逗留时间,并且仍然返回我将返回的一周中的一天的数字。我很难理解如何在一个简单的例子中使用lambda表达式。

starting_day = 3
length_of_stay = 10
end_day = (starting_day + length_of_stay) % 7
print("You will come back on day: ", end_day)

2 个答案:

答案 0 :(得分:4)

在考虑如何为此编写 lambda 函数之前,请考虑如何编写正常函数。它可能看起来像这样:

def day_of_return(starting_day, length_of_stay):
    return (starting_day + length_of_stay) % 7

然后您可以轻松将其转换为lambda函数:

day_of_return = lambda starting_day, length_of_stay: (starting_day + length_of_stay) % 7

或者,使用较短的变量名称:

day_of_return = lambda s,l: (s+l) % 7

然后你可以这样称呼它:

print(day_of_return(3,10))

编辑:在评论中,@ daragua指出将lambda分配给变量类型会破坏lambda的目的,所以你也可以完全删除赋值:

print((lambda s,l: (s+l) % 7) (3,10)) # This will print 6

答案 1 :(得分:0)

Lambda是函数,而不是表达式。它们可以在任何使用函数的地方使用。它们通常是匿名的,非常短。

相关问题