Chciałbym wiedzieć, jak napisać funkcję Pythona, która może spłaszczyć generator, który daje inne generatory lub iteables (które mogą również przynieść inne generatory/iterables ... ewentualnie nieskończenie).Python: Funkcja spłaszczania generatora zawierającego inny generator
Oto przykład:
gen(gen(1,2,3), gen(4,5,6), [7,8,9], [gen(10,11,12), gen(13,14,15)])
uwaga: gen
- środki generatora obiektu, zawartość w nawiasach po gen
to dane będą generatora gen
wydajność.
Oczekiwany wynik po „spłaszczenie”: gen(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
Konieczne jest funkcja Spłaszczenie powrót generator też! (ponieważ w przeciwnym razie wcześniejsze użycie generatorów byłoby bez znaczenia).
Proszę zauważyć, że używam python 3.
Dzięki!
Dziękuję bardzo! Z moją próbą byłem bardzo blisko twoich :-) Pozdrawiam! – JoshuaBoshi
+1 - Ciągle zapominam o "wydajności od" i to było miłe przypomnienie. –
@JonClements: "Nie zapominaj" o funkcjach wersji Pythona, która jeszcze nie została wydana? Jestem zaskoczony. :) –