Est-ce la façon dont vous paginez, ou est-il un meilleur algorithme?

Je veux être en mesure de prendre une séquence comme:

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

Utiliser une fonction comme:

my_paginated_sequence = get_rows(my_sequence, 3)

Pour obtenir:

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

C'est ce que j'ai trouvé juste par la pensée à travers elle:

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
thx, ne pense pas à le rajouter. Aussi, vous êtes un ninja par hasard???
double possible de le Rendement de plusieurs objets à la fois à partir d'un objet iterable objet?
double possible de Comment vous répartissez vous une liste en morceaux de taille égale en Python?

OriginalL'auteur orokusaki | 2010-09-19