Python: paginazione delle liste

Python: paginazione delle liste

In questo articolo vedremo come effettuare la paginazione di una lista in Python.

Si tratta di utilizzare la comprehension per generare una lista i cui elementi saranno le pagine da cui è composta la lista principale, ossia delle sottoliste create attraverso la modalità dello slicing.

def paginate(items, per_page):
    pages = [items[i:i+per_page] for i in range(0, len(items), per_page)]
    return {
        'total': len(items),
        'pages_no': len(pages),
        'pages': pages
    }

La nostra funzione restituirà un dizionario contenente il numero totale di voci della lista principale, il numero di pagine in cui è stata suddivisa e la lista delle pagine creata.

La funzione range() qui viene usata anche con il terzo parametro che indica il numero di avanzamenti (step) per iterazione. Ad esempio, supponendo di avere una lista items di 100 elementi e un parametro per_page pari a 10, alla prima iterazione avremo:

pages = [items[0:0+10]... range(0, 100, 10)]

E così via.

Torna su