python: lambda, yield-statement/expression and loops (Clarify) Python:lambda、yield语句/表达式和循环(澄清)

6 浏览
0 Comments

python: lambda, yield-statement/expression and loops (Clarify) Python:lambda、yield语句/表达式和循环(澄清)

我们能在lambda中实现yield或带有循环的生成器语句吗?我的问题是为了澄清:是否可以使用yield实现以下简单的循环函数?

def loopyield():

for x in range(0,15):

yield x

print(*loopyield())

结果出现错误:

lamyield=lambda x: yield x for x in range(0,15)

^

SyntaxError: invalid syntax

看起来,它期望右操作数作为未编写的return语句的一部分,但却找到了yield并感到困惑。

有没有一种合法的方法在循环中实现这个?

附注:yield可以是语句或表达式,这取决于谁问:yield - statement or expression?

最终答案:yield可以与lambda一起使用,但限制(单行)使其无用。for/while在lambda中不可能,因为它们不是表达式。- user2357112隐式的for循环在列表推导中是可能的,并且yield在列表推导中是有效的。- wim

判决-显式循环不可能,因为Python中的lambda只能包含表达式,要编写显式循环,您将需要使用语句。- wim

0