É assim que você pagina ou existe um algoritmo melhor?

Eu quero poder fazer uma sequência como:

my_sequence = ['foo', 'bar', 'baz', 'spam', 'eggs', 'cheese', 'yogurt']

Use uma função como:

my_paginated_sequence = get_rows(my_sequence, 3)

Para obter:

[['foo', 'bar', 'baz'], ['spam', 'eggs', 'cheese'], ['yogurt']]

Isto é o que eu descobri apenas pensando nisso:

def get_rows(sequence, num):
    count = 1
    rows = list()
    cols = list()
    for item in sequence:
        if count == num:
            cols.append(item)
            rows.append(cols)
            cols = list()
            count = 1
        else:
            cols.append(item)
            count += 1
    if count > 0:
        rows.append(cols)
    return rows

questionAnswers(4)

yourAnswerToTheQuestion