split a generator/iterable every n items in python (splitEvery)

前端 未结 13 1383
臣服心动
臣服心动 2020-11-27 16:44

I\'m trying to write the Haskel function \'splitEvery\' in Python. Here is it\'s definition:

splitEvery :: Int -> [e] -> [[e]]
    @\'splitEvery\' n@ s         


        
13条回答
  •  抹茶落季
    2020-11-27 17:36

    This is an answer that works for both list and generator:

    from itertools import count, groupby
    def split_every(size, iterable):
        c = count()
        for k, g in groupby(iterable, lambda x: next(c)//size):
            yield list(g) # or yield g if you want to output a generator
    

提交回复
热议问题