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

前端 未结 13 1401
臣服心动
臣服心动 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:22

    A one-liner, inlineable solution to this (supports v2/v3, iterators, uses standard library and a single generator comprehension):

    import itertools
    def split_groups(iter_in, group_size):
         return ((x for _, x in item) for _, item in itertools.groupby(enumerate(iter_in), key=lambda x: x[0] // group_size))
    

提交回复
热议问题