Python :Функция для выравнивания генератора, содержащего другой генератор

Я хотел бы знать, как написать функцию Python, которая может сглаживать генератор, который дает другие генераторы или итерации (, которые также могут давать другие генераторы/итерации... возможно, бесконечно ).

Вот пример:

gen(gen(1,2,3), gen(4,5,6), [7,8,9], [gen(10,11,12), gen(13,14,15)])

примечание:gen-означает объект-генератор, содержимое в скобках после gen— это данные, которые выдаст генератор gen.

Ожидаемый результат после «сглаживания»: gen(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)

Необходимо, чтобы функция flatten также возвращала генератор! (потому что в противном случае предыдущее использование генераторов было бы бессмысленным ).

Просто отмечу, что я использую Python 3.

Спасибо!

9
задан JoshuaBoshi 16 July 2012 в 11:12
поделиться