Генератор Python для вывода всего от другого вызова генератора

У меня есть генератор Python, который может вызвать себя, чтобы получить больше элементов. Это выглядит так:

def gen(list): # ... if list: for x in gen(list[1:]): yield x 

Мой вопрос касается двух последних строк: есть ли более сжатый способ выразить это? Я надеюсь на что-то подобное (понимая, что это неправда Python as-is):

 def gen(list): # ... if list: yield each in gen(list[1:]) 

3 Solutions collect form web for “Генератор Python для вывода всего от другого вызова генератора”

Был некоторый призыв к yield from или тому подобное, который «пропускает» все значения, возвращаемые подгенератором. См. PEP 380 для некоторых идей, которые были отброшены. Однако пока ничего не сделано. Ваш первый пример правильный.

Ваш образец кода очень идиоматичен и краток, не нужен и не имеет реальных шансов на дальнейшие улучшения, и особенно не тогда, когда он читается.

Ваш первый пример – правильное решение.

Python - лучший язык программирования в мире.