ret = [[1, 2], [3, 4, 5, 6], [7], [8, 9]]
itertools.zip_longest(*ret)
[x for x in itertools.chain.from_iterable(tmp) if x is not None]
Кратчайший способ нарезать четные/нечетные строки из массива Python?