guides
Pagination and Filtering
Efficient in-memory pagination, sorting, and filter logic.
Published May 30, 2026
In-Memory Pagination
def paginate(items: list, page: int, size: int) -> list:
start = (page - 1) * size
end = start + size
return items[start:end]
Cursor-Based Pagination
def paginate_cursor(items: list, cursor: int, size: int) -> tuple[list, int]:
idx = next((i for i, item in enumerate(items) if item['id'] > cursor), len(items))
page = items[idx:idx + size]
next_cursor = page[-1]['id'] if page else None
return page, next_cursor
Multi-Column Sort
def multi_sort(items: list[dict], keys: list[str]) -> list[dict]:
return sorted(items, key=lambda x: tuple(x[k] for k in keys))