0

I create a generator and from that I would like to get subgenerators based on a given length. I have one function but I would like to know if there any more pythonic ways maybe in the itertools module:

def create_sub_generators(generator, length=10):
    to_return = []
    for index, element in enumerate(generator):
        if (index % length) == 0 and index > 0:
            yield iter(to_return)
            to_return = []
        to_return.append(element)
    yield iter(to_return)

a = (i for i in range(100))

for index, lengh in enumerate(create_sub_generators(a, 22)):
     print(f'generator num: {index}  lenght: {len([i for i in lengh])}')

generator num: 0  lenght: 22
generator num: 1  lenght: 22
generator num: 2  lenght: 22
generator num: 3  lenght: 22
generator num: 4  lenght: 12
srikavineehari
  • 2,502
  • 1
  • 11
  • 21
pax80
  • 16
  • 3

0 Answers0