【发布时间】:2017-06-15 01:46:20
【问题描述】:
在这个示例程序中,我将第 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)
【问题讨论】:
-
一个 lambda 表达式用于定义匿名 函数。可以这么说,您在这段代码中的什么地方定义了您想要“匿名化”的函数?
-
这似乎倒退了。您有一个解决方案 (lambda),现在您正试图找到一个可以使用它的问题?
-
@melpomene 出于学习目的,这绝对是合适的。在实际使用工具之前,必须先了解它的用途。
-
我不明白,你已经有办法了……
-
这个问题的挑战在于没有充分的理由在这里定义一个 lambda。 lamdbas 是函数,需要调用它们才能有用。当您想要将函数传递给想要使用回调的其他函数时,通常会使用它们。您可以在打印时使用表达式
print("You will come back on day: ", (starting_day + length_of_stay) % 7),但使用 lambdaprint("You will come back on day: ", (lambda start, length: (start + length) % 7)(starting_day, length_of_stay))会很愚蠢。