Ist das, wie Sie paginieren, oder gibt es einen besseren Algorithmus?

Ich möchte eine Sequenz aufnehmen können wie:

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

Verwenden Sie eine Funktion wie:

my_paginated_sequence = get_rows(my_sequence, 3)

Bekommen

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

Das ist es, worauf ich gekommen bin, indem ich nur darüber nachgedacht habe:

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

Antworten auf die Frage(8)

Ihre Antwort auf die Frage