python: lambda, yield-statement/expression and loops (Clarify) Python:lambda、yield语句/表达式和循环(澄清)
- 论坛
- python: lambda, yield-statement/expression and loops (Clarify) Python:lambda、yield语句/表达式和循环(澄清)
6 浏览
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