TLDR:
Можем ли мы реализовать yield
или инструкцию генератора (с циклом) в пределах lambda
?
Мой вопрос заключается в том, чтобы уточнить:
Можно ли реализовать следующую простую функцию цикла с выходом
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
Похоже, он ожидал чего-то в качестве правильного операнда для неписаного оператора возврата, но нашел yeild
и запутался.
Есть ли законный способ достичь этого в цикле?
Боковое примечание: yield
может быть выражением/выражением в зависимости от того, кого вы спрашиваете: yield - statement или expression?
Конечный ответ: доход может использоваться с лямбдой, но ограничение (однострочное) делает его бесполезным. for/while
невозможно в лямбда, потому что они не являются выражениями. -user2357112 неявный для цикла возможен с пониманием списка, и доходность действительна в понимании списка. -wim
Вердикт - Явные петли невозможны, потому что lambdas в python может содержать только выражения, а для записи явного цикла вам понадобятся операторы. -wim